yüzden şöyle vektörleri tutan bir vektör vardır:yanlış lambda kullanımı
vector<vector<int>> vec;
Ve vec içinde vektörler yineleme ve silinen olsun vektörleri belirlemek için (Sonr) bir karşılaştırıcı kullanmaya çalışıyorum remove_if ve sil. Kodum şu ana kadar aşağıdaki gibidir:
vector<vector<int>> deleted_vecs;
vec.erase(remove_if(vec.begin(), vec.end(),
([vec, pred](vector<int> x) {
if (pred(x)) {
return true;
}
else {
deleted_vecs.push_back(x);
return false;
}
},
vec.end())));
Burada yanlış bir şey var mı?
Derleyici hatalarım, "if (önceki (x))" ve "deleted_vecs.push_back (x);" Önceden bir vektörü almayı planladım ve bir vektör olarak delete_vecs ilan ettiğim halde, pred ve push_back ile eşleşen bir işlev çağrısı olmadığını söyleyin. Bu, x'i nasıl beyan ettiğimin bir sorun olduğunu düşünmeme neden oluyor, ancak emin değilim.
Herhangi bir yardım için teşekkür ederiz!
parantez kullanımınızı kontrol edin. –
@JoachimPileborg oops, bu benim kodumdaki bir yazım hatasıydı. Ancak, düzeltdiğimde sorun hala devam ediyor. – user5482356
Sen * vec'i yakalamama * gerek yok, ama 'delete_vecs' 'i yakalaman gerek. Referans olarak, "delete_vecs" dosyasının bir kopyasına öğeler ekleyeceksiniz ve programınızın geri kalanı asla görmeyecektir. –