remove_copy_if可以用于map吗,如果可以给出示例代码
其实我看了这边博客:http://blog.csdn.net/lalor/article/details/7642797,里面说对map容器进行满足条件的元素进行删除时,可以通过对map关联容器先进性remove_copy_if操作,然后再进行swap操作,但是没有给出实现的代码。本人实现代码如下,但是汇报错误:
但是在VS2012中,编译会报错,error C2678: 二进制“=”: 没有找到接受“const std::string”类型的左操作数的运算符(或没有可接受的转换)。到底该如何解决?
#include <iostream>
#include <string>
#include <map>
#include <algorithm>
#include <iterator>
using namespace std;
map<string,int> mapCount;
map<string,int> mapCountTemp;
bool notCopy(pair<string,int> key_value){
return key_value.second==2;
}
int main(){
mapCount.insert(make_pair("000",0));
mapCount.insert(make_pair("001",1));
mapCount.insert(make_pair("002",2));
mapCount.insert(make_pair("003",1));
remove_copy_if(mapCount.begin(),mapCount.end(),mapCountTemp.begin(),notCopy);
cout<<mapCountTemp.size()<<endl;
getchar();
}但是在VS2012中,编译会报错,error C2678: 二进制“=”: 没有找到接受“const std::string”类型的左操作数的运算符(或没有可接受的转换)。到底该如何解决?
...全文
相关推荐
STL_Cheat_Sheets:C ++ STL速查表
- **拷贝算法**:copy()、copy_if()将元素从一个容器复制到另一个容器。 - **替换算法**:replace()、replace_if()、swap()等修改元素值。
C++调用STL算法函数有效提升STL列表的搜索速度(附源码)
本文详细讲述如何使用STL库自带的算法函数去有效提升STL列表的搜索速度
CSTL参考文档,C下的STL
- **algo_remove** / **algo_remove_if** / **algo_remove_copy** / **algo_remove_copy_if**:移除满足条件的元素。
八股.docx
remove_if 把不等于这个值的元素往前移动来实现替换指定值;不会改变 size。6.
使用经验总结(c++容器)
- 删除满足条件的元素:对于vector、string和deque,使用erase-remove_if idiom;对于list,使用list::remove_if;对于关联容器,使用remove_copy_if


工具平台和程序库
