Her bir öğe çiftinde çalışmak için std :: listesinin üzerinde bir çift döngü yapmaya çalışıyorum. Ancak, ikinci yineleyici başlatırken bazı sorun yaşıyorum. Ben yazmak istiyorum koddur:Bir std :: liste yineleyicisi döngüde artışla nasıl oluşturulur
liste yineleyiciler rasgele erişimli değildir çünkü çalışmaz, bu nedenle +1 yapamazfor(std::list<int>::iterator i = l.begin(); i != l.end(); ++i) {
for(std::list<int>::iterator j = i+1; j != l.end(); ++j) {
...
}
}
. Ama ben düzgün bir alternatif bulmada bazı sorun yaşıyorum; Derleyici, umudum olan std::list<int>::iterator j(i)++;
ile çok mutlu görünmüyor. İstediğimi elde etmek, for döngüsünün yapısına uygun olmayan bazı garip ekstra artışlara sahip olmak gibi görünecek gibi görünüyor.
Apaçık alternatifler vardır (örneğin, bir vektör kullanarak!) Ama bana öyle görülemediğim bazı makul şekilde düzgün bir şekilde yapılmalıdır. Herhangi bir yardım için şimdiden
Teşekkür :) Geri oyunda
'advance' hiçbir dönüş değeri yoktur, ilk bağımsız değişkeni değiştirir. (Ben şahsen hoşlanmıyorum.) Bu, bir 'advance_copy' işlevi yazmak kolay. – GManNickG
@GMan: Sabit. Ty! – dirkgently
Sorun değil. Benim fikrim ile alternatif bir cevap olarak gitmeye karar verdim. – GManNickG