Klausimai, pažymėti „kopijuoti ir keisti“

Kopijų keitimo „C ++“ idioma gali būti naudojama priskyrimo operatoriaus įgyvendinimui supaprastinti, naudojant kopijavimo konstruktorių vietinei kopijai sukurti ir pakeisti jį dabartiniu objektu.
5
atsakymai

Kas yra kopija ir apsikeitimo idioma?

Kas yra ši idioma ir kada ji turėtų būti naudojama? Kokias problemas jis sprendžia? Ar idioma keičiasi su C + + 11? Nors tai buvo paminėta daugelyje vietų, mes neturėjome jokių specialių klausimų ir atsakymų, todėl čia. Čia yra neišsamus ...
Nustatyta liepos 19 d. 10 val. 11:42
2
atsakymai

visuomenės draugo mainų funkcija

Puikus atsakymo kopijavimo ir keitimo idiomas yra kodo gabalas, man reikia šiek tiek pagalbos: klasė dumb_array {public: // ... draugas negaliojantis apsikeitimas (dumb_array first, dumb_array second) // nothrow {naudojant std :: swap; apsikeitimas (firs ...
balandžio 17 d '11 21:35
4
atsakymai

Kodėl kai kurie žmonės persijungia į peradresavimą?

Pvz., StdlibС ++ turi: unikalią blokavimo operatoriaus = (unikali_lock {if (_M_owns) atrakinimo (); unique_lock (std :: move (__ u)) apsikeitimas (* tai); __u._M_device = 0; __u._M_owns = false; grįžkite *; } Kodėl ...
nustatytas liepos 14 d., 11 val
3
atsakymai

Kas yra kopijavimas ir kaip ji optimizuoja kopiją ir apsikeitimo idiomą?

Aš perskaičiau „Copy“ ir „Swap“. Bandžiau perskaityti kai kurias nuorodas į „Copy Elision“, bet aš negalėjau suprasti, ką tai reiškia. Ar kas nors gali paaiškinti, kas yra optimizavimas, o ypač tai, ką reiškia kitas tekstas? Tai ne tik patogumas, bet ir faktas ...
nustatytas sausio 27 d '10, 3:37
3
atsakymai

Jei „Idiom“ su kopijavimu ir pakeitimu, „C ++ 11“ tampa „Idiom Copy-and-Move“?

Kaip paaiškinta šiame atsakyme, kopijavimo ir keitimo idioma įgyvendinama taip: klasė „MyClass“ {private: BigClass duomenys; UnmovableClass * dataPtr; viešas: MyClass (): data (), dataPtr (naujas UnmovableClass) {} MyClass (con ...
birželio 03 d. 14 val
2
atsakymai

Kopijuoti ir perkelti idiomą?

Naudodamiesi „Copy“ ir „Swap“, galime lengvai įdiegti kopijos paskirties vietą patikimu saugumu: T operator = (T other) {using std :: swap; apsikeitimas (* tai, kitas); grįžkite *; } Tačiau reikia, kad T būtų sukeisti. Ką ...
nustatytas balandžio 12 d '17, 14:35
1
atsakymas

Kada perkrova seka nuoroda (l-reikšmė ir r vertė), kuri yra pageidautina perduoti pagal vertę?

Pamačiau, kad jis sakė, kad operatorius =, parašytas imtis tokio paties tipo parametro, veikia kaip kopijavimo priskyrimo operatorius ir judėjimo priskyrimo priskyrimo operatorius C ++ 11: Foo operator = (Foo f) {swap ( f); grįžti * ...
nustatytas rugpjūčio 18 d '13, 23:22
3
atsakymai

Perkėlimo priskyrimas nesuderinamas su standartiniu kopijavimu ir keitimu

Naujo judėjimo semantikos testavimas. Aš ką tik paklausiau apie problemas, kurias turėjau su Perkėlimo konstruktoriumi. Tačiau, kaip paaiškėja komentaruose, problema yra ta, kad operatoriaus „Judėjimo perkėlimas“ ir „Standartinės priskyrimo“ operatorius susiduria su ...
lapkričio 7 d. '13, 19:41
2
atsakymai

Kodėl std :: vector turi du priskyrimo operatorius?

Nuo 2011 m. Turime ir kopijuoti, ir judėti. Tačiau šis atsakymas pakankamai įtikinamai įrodo, kad išteklių valdymo klasėms reikia tik vieno priskyrimo operatoriaus.
lapkričio 21 d. '15, 2:01
2
atsakymai

Kaip naudoti nešifravimą priskyrimo ataskaitoje su kopijavimu ir apsikeitimo idioma?

Pereinamojo priskyrimo operatorius dažnai turi būti paskelbtas be ištraukos (t.y. laikyti tipą STL konteineriuose). Tačiau kopijavimo ir keitimo idioma leidžia apibrėžti kopijavimo priskyrimo operatorius ir judančias operacijas viename kodo fragmente. Ką ...
nustatytas 17 sep. '13, 14:07
2
atsakymai

Kai kopijavimo ir keitimo idioma nepalaikoma

Perskaičiusi apie kopijavimo ir keitimo idiotą, perskaičiau tai: (2): class_name class_name :: operator = (const class_name (2) (2) Tipiška kopijavimo operatoriaus deklaracija, kai ...
lapkričio 16 d. '15, 14:59 val
6
atsakymai

pakartotinio naudojimo idiomų kopijavimas ir keitimas

Bandau kopijuoti ir keisti idiomą įdėti į daugkartinio naudojimo mišinį: šabloną <typename Išvestinė> struct copy_and_swap {Derived operator = (Išvestinė kopija) {Išvestinė * išvestinė = static_cast <Derived *> (tai); gautas-> s ...
Nustatykite rugpjūčio 16 d '11, 17:48
3
atsakymai

Ar neveiksminga kopijuoti ir keisti idiomas?

Aš išbandžiau kodą, kuriame klasėje yra duomenų elementas std :: vector. Klasė yra mobilioji ir mobilioji, o operatorius = yra įgyvendinamas, kaip aprašyta čia, naudojant idiomą ir. Jei yra du vektoriai, pasakykite v1 su dideliu ...
kovo 03 d. 13 val
3
atsakymai

Saugus priskyrimas ir idiomas „kopijuoti ir keisti“

Aš mokau C + +, ir neseniai sužinojau (čia stekų perpildymas) apie kopiją ir pakeisti idiomą, ir turiu keletą klausimų apie tai. Taigi, manau, kad turiu šią klasę, naudodamas idiomą su kopijavimu ir pakeitimu, pavyzdžiui: klasė Foo {p ...
gegužės 06 d. 11 d
2
atsakymai

Kas yra keturių (pusantro) taisyklė?

Norint tinkamai apdoroti kopijavimo objektus, nykščio taisyklė yra trečias. C ++ 11, judanti semantika yra dalykas, todėl vietoj to, penkių taisyklė. Tačiau diskusijose aplink čia ir internete taip pat matėu nuorodas į Četo taisyklę ...
nustatytas rugpjūčio 18 d '17, 13:17