Klausimai, pažymėti „const-iterator“

Iterator C ++ STL su griežtai suprantama prieiga.
7
atsakymai

Kaip įdiegti STL stiliaus iteratorių ir išvengti įprastų klaidų?

Aš sukūriau kolekciją, kuriai aš noriu pateikti iteratorių su atsitiktine prieiga STL stiliaus. Aš ieškojau iteratoriaus įgyvendinimo pavyzdžio, bet jo neradau. Žinau, kad reikia perkrauti [] ir * operatorių konstantas. Kokie yra reikalavimai ...
lapkričio 8 d. '11 20:06
6
atsakymai

Kaip teisingai įdiegti priskirtus iteratorius ir const_iteratorius?

Turiu savo konteinerių klasę, kuriai norėčiau parašyti klases iteratorių ir const_iterator. Aš niekada to nepadariau, ir aš negalėjau rasti tinkamo vadovo. Kokios rekomendacijos kuriant iteratorių ir ką turėčiau žinoti ...
nustatyti 27 rug. '10, 11:50
10
atsakymai

Kaip pašalinti const_iterator pastovią?

Kaip šio klausimo papildymas Ar „const_iterators“ yra greitesnis ?, turiu dar vieną klausimą apie „const_iterators“. Kaip pašalinti const_iterator pastovią? Nors iteratoriai yra apibendrinta rodyklių forma, tačiau vis dar yra „const_iterator“ ir „iterat“ ...
nustatytas 19 d '09 12:54
11
atsakymai

Ar yra kokių nors konstantų?

Mūsų kodavimo rekomendacijas pirmenybę teikia const_iterator, nes jie yra šiek tiek greitesni, palyginti su įprastu iteratoriumi. Atrodo, kad kompiliatorius optimizuoja kodą, kai naudojate const_iterator. Ar tai tikrai teisinga? Jei taip, tai d ...
nustatytas balandžio 16 d '09 12:20
1
atsakymas

Naujas std :: map :: erase () parašas C ++ 17

Pagal šį atsakymą iteratorius turi būti netiesiogiai konvertuojamas į const_iterator. Kadangi tai tiesa, kaip matome, kas vyksta insert_or_assign (), kodėl C ++ 17 buvo pridėtas naujas parašas prie std :: map :: erase ()? C ++ 11, mes iterator e ...
yra nustatyta birželio 08-18 dienomis 19:26
6
atsakymai

Ar turėčiau rinktis iteratorius virš const_iterators?

Kažkas neseniai paminėjo Scott Meyers straipsnį, kuriame teigiama: „Pirmenybė teikiama iteratoriams virš const_iterators“ (pdf-link). Kažkas komentavo, kad straipsnis tikriausiai buvo pasenęs. Įdomu, kokios yra jūsų nuomonės? Čia yra mano. Vienas iš pagrindinių taškų ...
nustatytas 19 d '09 14:28
3
atsakymai

Ar const_iterator palyginimas su iteratoriumi yra teisingas?

Apsvarstykite šį kodą: #include <vector> #include <iostream> int main () {std :: vektorius <int> vec {1,2,3,5}; už (auto it = vec.cbegin (); it! = vec.cend (); ++ it) {std :: cout << *; // Typo: baigti vietoj ...
14 vasario mėn. '16, 13:43
2
atsakymai

Kodėl galima naudoti const_iterator su std :: map :: erase

Man teko susidaryti įspūdį, kad negalite naudoti ištrinimo „konst” iteratoriuje. Patikrinkite šį kodą. Kodėl toliau pateikiamas kodas (C ++ 11, gcc)? ilgas getMax (const bool get_new) {long max_val = 0; Dabar = getNow (); žemėlapis <TO, long> m = ...
nustatyti 21 d. '16, 8:13
2
atsakymai

const_iterator ir pastovus const_iterator :: value_type

Kodėl STL std :: iterator_traits <const T *> :: value_type yra toks pat tipas kaip std :: iterator_traits <T *> :: value_type Kodėl tai veikia taip? Ar ne pirmasis turi būti T T, o antrasis - tik T? Kaip turėtumėte imtis pagrindinio const ...
nustatyti 10 okt. '12 15:31
3
atsakymai

C ++ iteratoriaus ir const_iterator problema savo konteinerių klasei

Rašau savo konteinerių klasę ir susiduriu su problema, kurią nematau. Čia yra tuščias kaulo mėginys, rodantis problemą. Ją sudaro konteinerių klasė ir dvi bandymų klasės: viena bandymų klasė su ...
gegužės 16 d. 18 val
1
atsakymas

C ++ 17, kodėl asociatyvūs konteineriai turi ištrinti nario funkciją, kuri priima (ne "" "" "" "" "" "" "" "" "" "" "" "" "" "" "" "". "" "" "" "" "" "" "" "" "" "" "" "" "" "" ". "` `` `` `` `` `` `` `` `` ``

Pavyzdžiui, žr. Http://en.cppreference.com/w/cpp/container/map/erase „C ++ 03“ buvo trys perkrovos: negaliojantis ištrinimas (iterator poz); negaliojantis ištrinti (pirmiausia iteratorius, paskutinis iteratorius); size_type ištrinti (const key_type key); C ++ 11, pirmasis ir antrasis ...
nustatyti 21 d. '16, 9:47
2
atsakymai

Savarankiškai identifikuotų iteratorių konstantumas

Bendras tikslas - valdyti objektų rinkinį („Real“ rinkinys kaip paprastas pavyzdys). Tada aš apibrėžiau iteratorius mano kolekcijoje. Tai reiškia: iterator, const_iterator, reverse_iterator ir const_reverse_iterator. Šiame pavyzdyje atkreipsiu dėmesį į ...
yra nustatyta birželio 08-15 dienomis 17:07
2
atsakymai

Kodėl elementai gali būti įterpti į vektorių, kai naudojami „const_iterators“

Atsižvelgiant į toliau pateiktą kodą, #include <iostream> #include <algorithm> #include <vector> naudojant vardų sritį std; int main () {vektorius <int> reikšmė {22, 23, 25, 34, 99}; auto it = rasti (value.cbegin (), value.cend (), 25); ...
nustatytas vasario 11 d '18, 6:27
1
atsakymas

C ++ 11: ištrynimas su const_iterator

Manau, kad naudojant C ++ 11, daugumos konteinerių (pvz., Std :: vector) trynimo funkcija paima parametrą const_iterator kaip: iteratoriaus ištrynimą (const_iterator poziciją); Ir vis dėlto mano kompiliatoriai (GCC 4.8 ir C>
nustatytas balandžio 13 d '13, 15:40
2
atsakymai

Perkelti iteratorius į konteinerius?

C ++ 98 konteineriai apibrėžia dviejų tipų iteratorių, :: iteratorių ir :: const_iteratorių. Paprastai: struct vec {iterator prasideda (); const_iterator prasideda () const; }; C ++ 11 ši dizaino dalis atrodo nepakitusi. Kyla klausimas dėl nuoseklumo ...
nustatytas vasario 22 d '18 - 0:37