SORU
13 EYLÜL 2013, Cuma


Güvenli aynı vector öğesinden push_back?

vector<int> v;
v.push_back(1);
v.push_back(v[0]);

Eğer ikinci push_back yeniden tahsisi neden olursa, vektör ilk tamsayı için başvuru artık geçerli olacak. Bu güvenli değil mi?

vector<int> v;
v.push_back(1);
v.reserve(v.size()   1);
v.push_back(v[0]);

Bu zarar vermiyor mu?

CEVAP
13 EYLÜL 2013, Cuma


http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-closed.html#526 Bu sorun (ya da bir şey çok benzer) standart potansiyel bir kusur olarak ele gibi görünüyor:

1) Parametreleri sabit başvuru tarafından alınan yürütme sırasında değiştirilebilir işlevi

Örnekler:

::Verilen std vektör v:

(v. begin (), [2] v) v. takın;

v[2] vektör elemanlarının hareket tarafından değiştirilebilir

Önerilen çözüm bu bir arıza değildi:

Ekle standart hale getirmek için gerekli::vektör bunun için izin çalışmıyor vermez.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • David Wills

    David Wills

    31 Aralık 2007
  • Doc Adams

    Doc Adams

    20 HAZİRAN 2007
  • MagmaRhino

    MagmaRhino

    16 Temmuz 2011