关闭

关于remove_if

标签: iteratorclass
301人阅读 评论(0) 收藏 举报
分类:

今天试验了一下remove_if,发现只是把符合条件的元素移到前面,而容器的长度是没有变化的

//输出容器中元素

template <class T>
void printout(const vector<T>& v)
{
 
  vector<T>::const_iterator it = v.begin();
  while (it != v.end())
   cout << *it++ << endl;
 
}

//比较谓词

bool compare (double x)
{
 return x == 0;
}
int main()
{

double x;
 vector<double> v;
 while (cin >> x)
  v.push_back(x);
 remove_if(v.begin(), v.end(), compare);
 printout(v);
 cout << v.size() << endl;
 return 0;
}

另外使用remove_copy只是把不符合条件的移到另一个容器,对本身的容器是没有影响的

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:3989次
    • 积分:93
    • 等级:
    • 排名:千里之外
    • 原创:6篇
    • 转载:0篇
    • 译文:0篇
    • 评论:0条
    文章存档