Yineleyicilerle normal hesaplamalar yapabilir miyim, yani sadece bir sayı ekleyerek onu artırabilir miyim? Örnek olarakSadece bir sayı ekleyerek bir yineleyici ekleyebilir miyim?
, ben elemanını vec[3]
kaldırmak istiyorsanız, sadece bunu yapabilirsiniz:
std::vector<int> vec;
for(int i = 0; i < 5; ++i){
vec.push_back(i);
}
vec.erase(vec.begin() + 3); // removes vec[3] element
Benim (g ++) için çalışır, ancak garantili olup olmadığından emin değilim çalışmak.
Oh, bu yüzden std :: list için işe yaramaz? – Frank
Doğru; Hangi yineleyici türlerinde hangi işlevlerin kullanılabileceğini listeleyen bazı belge bağlantıları ekledik. –
Hayır, değil. + Işleci, bir adım yineleyicisinin yapamayacağı "bir adımda, bu kadar ileriye atlamak" anlamına gelir. Forward rastgele erişimli yineleyiciler (liste yineleyicileri gibi) yalnızca bir öğeyi bir defada ilerletmek için arttırma (++) operatörünü destekler. Todd'un dediği gibi, rastgele olmayan bir yinelemeyi birkaç adım ileriye taşıma fikrini kısa ve öz bir şekilde ifade etmek için art arda ++ operatörünü tekrar eden std :: advance'i kullanabilirsiniz. –