我遇到了一些问题/我不明白某些事情导致了这个问题:)
这是一些代码:
list<Walec>lista;
remove_copy_if(vec.begin(),vec.end(), lista.begin(),Warunek_na_Wysokosc(sredniasu));
copy(lista.begin(),lista.end(),ostream_iterator<Walec>(cout, " \n"));
这是 Warunek_Na_Wysokosc 的定义:
struct Warunek_na_Wysokosc
{
double wys;
Warunek_na_Wysokosc(const double& h_): wys(h_){ }
bool operator()(const Walec& w)
{
return w.h >= wys;
}
};
问题是,如果我让它这样,我会遇到一些内存问题,我的意思是主要功能中的指令,如果我设置列表大小则没有。但我希望它自动设置,我应该使用一些插入功能吗?如何纠正这个? :) 谢谢!
最佳答案
我想你想使用 inserter这里:
remove_copy_if(vec.begin(),vec.end(),
std::inserter(lista,lista.end()),
Warunek_na_Wysokosc(sredniasu));
关于C++ STL 列表大小,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22880464/