kullanarak. VS2005 altında cezası derlemek için kullanılan Sorunları Ben kodu aşağıdakilere sahip setleri
#include <set>
#include <algorithm>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
typedef set<long> MySet;
MySet a;
for(int i = 0; i < 10; ++i)
{
a.insert(i);
}
MySet::iterator start,end,last;
start = a.begin();
end = a.end();
last = remove_if(start,end,bind2nd(less_equal<long>(),5));
return 0;
}
. '_Next': Eğer const c olan bir değişkene atanamıyor: 1 hata C3892
Hata: \ Program Files \ 10.0 \ vc \ dahil microsoft visual studio \ algoritma
Ancak aşağıdaki hatayı alıyorum VS2010 kullanarak Ben kabını bir vektör yaparsanız, her şey yolunda.
Farkında olmadığım standartta bir şeylerin değiştiğini tahmin ediyorum, birisi neden artık işe yaramadığını açıklayabilir mi?
Ben bunu düşünmek zaman çok açık varsayalım. Bence VC6 VS2005 ve şimdi VS2010 için sürüklemediyseniz büyük projeyi, dönüştürme edilmiştir ve birçok minik hatalar var. Zihinsel kod blokumu kaldırdığın için teşekkürler. Vs2005'in oldukça katı olduğunu düşünüyordum, sanırım vs2010 kadar katı değil. – Rich
Bunun için bir çözüm var mı? Remove_if yerine kullanabileceğim bir şey var mı? – julienln
@julienln: İstenmeyen öğeler olmadan yeni bir kap oluşturmak için 'std :: remove_copy_if' kullanabilir ya da öğeleri tek tek arayabilir ve silebilirsiniz. –