İşte benim kodum: sonuç 1,2,3,4,5,6 olmalı, ama hala 1,2,3,1,2,3 olmalıdır. Ben linux üzerinde çalıştırdığımda, bu doğru. Bana gerçeği söyleyebilir.referans alarak functor'lar, VS2012'de çalıştırıyorum, neden hata yapıyor?
class IntSequence {
private:
int value;
public:
IntSequence(int initialValue) : value(initialValue){}
int operator()() {
return value++;
}
};
int main()
{
list<int> coll;
IntSequence seq(1);
generate_n<back_insert_iterator<list<int> > , int , IntSequence& >
(back_inserter(coll) , 3 ,seq);//result is 1,2,3
generate_n (back_inserter(coll) , 3 ,seq);//result should be 1,2,3,4,5,6,but it is still 1,2,3,1,2,3
}
@songyuanyao şimdi çalışıyor –
@songyuanyao ile bu kodu kullanıyorum Cevabımı güncelledim. Bunun bir hata mı olduğunu bilmiyorum. – Jts
Tamam , Çok teşekkürler –