Pitanja označena s "kopiraj i zamijeni"

Idiom razmjene kopija u C ++ može se koristiti za pojednostavljenje implementacije operatora dodjele, koristeći konstruktor kopiranja za stvaranje lokalne kopije i zamjenu s trenutnim objektom.
5
odgovor

Što je kopija i swap idiom?

Kakav je to idiom i kada ga treba koristiti? Koje probleme on rješava? Da li se idiom mijenja s C ++ 11? Iako je to bilo spomenuto na mnogim mjestima, nismo imali nikakvih posebnih pitanja "što je ovo" pitanja i odgovora, pa evo ga. Ovdje je nepotpuna ...
Postavite 19. srpnja u 11:42
2
odgovor

funkcija razmjene javnih prijatelja

U izvrsnom odgovoru copy-i-swap-idiom postoji dio koda, trebam malo pomoći: klasa dumb_array {public: // ... prijatelj void swap (dumb_array i prvi, dumb_array i drugi) // nothrow {koristeći std :: swap; zamjena (prva ...
17. travnja '11 u 21:35
4
odgovor

Zašto neki ljudi koriste swap za preusmjeravanje?

Na primjer, stdlibS ++ ima sljedeće: unique_lock operator = (unique_lock __u) {if (_M_owns) otključaj (); unique_lock (std :: move (__ u)). swap (* this); __u._M_device = 0; __u._M_owns = false; povratak * ovo; } Zašto ...
postavljen 14. srpnja '11. u 4:03
3
odgovor

Što je kopiranje i kako optimizira kopiranje i swap idiom?

Čitam Copy i Swap. Pokušao sam pročitati neke linkove na Copy Elision, ali nisam mogao razumjeti što to znači. Može li netko objasniti što je optimizacija, a pogotovo što znači sljedeći tekst.Ovo nije samo pitanje praktičnosti, nego činjenica ...
postavljen 27. siječnja '10 u 3:37
3
odgovor

Ako idiom s kopijom i promjenom postaje Idiom Copy-and-Move u C ++ 11?

Kao što je objašnjeno u ovom odgovoru, kopija i swap idiom implementira se kako slijedi: klasa MyClass {private: BigClass podaci; UnmovableClass * dataPtr; public: MyClass (): data (), dataPtr (novi UnmovableClass) {} MyClass (con ...
postavljen 03. lipnja u 14.33
2
odgovor

Kopiraj i pomakni idiom?

Koristeći Copy i Swap, lako možemo implementirati odredište za kopiranje s pouzdanom sigurnošću: T operator = (T drugo) {koristeći std :: swap; swap (* ovo, drugo); povratak * ovo; } Međutim, to zahtijeva da T bude Swappable. Što ...
postavljeno 12. travnja '17 u 14:35
1
odgovor

Kada preopterećenje slijedi vezu (l-vrijednost i r-vrijednost) koja se preferira za prijenos po vrijednosti?

Vidio sam da je on rekao da operator =, napisan da uzme parametar istog tipa po vrijednosti, služi i kao operator za dodjelu kopija i za operatora dodjeljivanja kretanja u C ++ 11: Foo operator = (Foo f) {swap ( f); povratak * ...
postavljeno 18. kolovoza '13 u 23:22
3
odgovor

Premještanje zadatka nije kompatibilno sa standardnim kopiranjem i zamjenom

Testiranje nove semantike pokreta. Upravo sam pitao o problemima koje sam imao s Move Constructor. No, kao što se ispostavilo u komentarima, problem je u tome što se operater "Dodjela pokreta" i operator "Standard Assignment" sudaraju ...
postavljeno 07. studenog '13 u 19:41
2
odgovor

Zašto std :: vector ima dva operatora dodjele?

Od 2011. imamo kopiranje i premještanje. Međutim, ovaj odgovor dovoljno uvjerljivo dokazuje da klasama upravljanja resursima treba samo jedan operater zadatka.
postavljen 21. studenog '15 u 2:01
2
odgovor

Kako koristiti noexcept u izjavi zadatka s kopijom i swap idiomom?

Operator dodjele prijelaza često mora biti deklariran noexcept (tj. Pohraniti tip u STL spremnike). Međutim, idiom za kopiranje i zamjenu omogućuje definiranje operatora dodjele kopiranja i pomicanje operacija u jednom fragmentu koda. Što ...
postavljen na 17 sep. '13 u 14:07
2
odgovor

Kada kopiranje i izmjena idioma nisu podržani

Nakon čitanja o idiomu kopiranja i zamjene, pročitao sam ovo, koje glasi: (2): class_name class_name :: operator = (const class_name (2) (2) Tipična izjava operatora kopiranja kada ...
postavljen 16. studenog. '15 u 14:59
6
odgovor

ponovno upotrijebite kopije i razmjenu idioma

Pokušavam staviti kopiju i zamjenu idioma u višekratnu kombinaciju: template <typename Derived> struct copy_and_swap {Derived operator = (Izvedena kopija) {Izvedeno * izvedeno = static_cast <Izvedeno *> (this); izvedeno -> s ...
Postavite 16. kolovoza '11 u 17:48
3
odgovor

Neučinkovitost kopiranja i zamjene idioma?

Testirao sam neki kod koji ima stavku podataka std :: vector unutar klase. Klasa je i mobilna i mobilna, a operator = implementiran kao što je opisano ovdje koristeći idiom i. Ako postoje dva vektorska s, reci v1 s velikim ...
postavili 03. ožujka u 20:03
3
odgovor

Sigurno dodjeljivanje i idiom "kopiraj i mijenjaj"

Ja učim C ++, a nedavno sam saznala (ovdje u preljevu stogova) o idiomu s kopiranjem i zamjenom, i imam nekoliko pitanja o tome. Dakle, pretpostavimo da imam sljedeću klasu, koristeći idiom s kopijom i zamjenom, na primjer: klasa Foo {p ...
postavljen 6. svibnja '11 u 3:25
2
odgovor

Što je pravilo četiri (i pol)?

Za pravilnu obradu predmeta kopiranja, pravilo je pravilo tri. Kod C ++ 11, pomična semantika je stvar, pa umjesto nje, pravilo pet. Međutim, u raspravama ovdje i na internetu, također sam vidio reference na Chetovo pravilo ...
postavljeno 18. kolovoza '17 u 13:17