რატომ ვიყენებთ emplace-ს c++-ში?

რატომ ვიყენებთ emplace-ს c++-ში?
რატომ ვიყენებთ emplace-ს c++-ში?
Anonim

C++-ში ყველა კონტეინერი (ვექტორი, სტეკი, რიგი, ნაკრები, რუკა და ა.შ.) მხარს უჭერს როგორც ჩასმა, ასევე ჩასმა ოპერაციებს. emplace-ის უპირატესობა ის არის, რომ აკეთებს ადგილზე ჩასმას და თავს არიდებს ობიექტის არასაჭირო კოპირებას. … მაგრამ ობიექტებისთვის, emplace-ის გამოყენება სასურველია ეფექტურობის მიზეზების გამო.

რისთვის გამოიყენება emplace ფუნქცია?

C++ set emplace ფუნქცია გამოიყენება ნაკრების კონტეინერის გასაგრძელებლად კონტეინერში ახალი ელემენტების ჩასმით. ელემენტები აგებულია პირდაპირ (არც კოპირდება და არც გადატანილია). ელემენტის კონსტრუქტორი გამოიძახება ამ ფუნქციისთვის გადაცემული არგუმენტების მიცემით. ჩასმა ხდება მხოლოდ იმ შემთხვევაში, თუ გასაღები უკვე არ არის.

ჯობია emplace ჩასმა?

emplace ოპერაცია თავიდან აიცილებს ობიექტის არასაჭირო კოპირებას და აკეთებს ჩასმას უფრო ეფექტურად, ვიდრე ჩასმის ოპერაცია. ჩასმის ოპერაცია იღებს მითითებას ობიექტზე.

რას აკეთებს emplace C++-ში?

რუქა::emplace არის ჩაშენებული ფუნქცია C++ STL-ში, რომელიც ჩასმის გასაღები და მისი ელემენტი რუკის კონტეინერში. ის ეფექტურად ზრდის კონტეინერის ზომას ერთით.

რა განსხვავებაა emplace-სა და push-ს შორის?

სხვაობა stack::emplace და stack::push ფუნქციას შორის. მაშინ როდესაც push ფუნქცია ჩასვამს მნიშვნელობის ან ფუნქციისთვის გადაცემული პარამეტრის ასლს კონტეინერში ზედა ნაწილში, emplace ფუნქცია აყალიბებს ახალ ელემენტს პარამეტრის მნიშვნელობად და შემდეგ ამატებს მას კონტეინერის ზედა ნაწილში.