remove_copy_if可以用于map吗,如果可以给出示例代码

恋喵大鲤鱼 恋喵大鲤鱼 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
其实我看了这边博客:http://blog.csdn.net/lalor/article/details/7642797,里面说对map容器进行满足条件的元素进行删除时,可以通过对map关联容器先进性remove_copy_if操作,然后再进行swap操作,但是没有给出实现的代码。本人实现代码如下,但是汇报错误:
#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”类型的左操作数的运算符(或没有可接受的转换)。到底该如何解决?
...全文

相关推荐

评论 6
收藏 已收藏
分享
返回顶部
恋喵大鲤鱼
恋喵大鲤鱼 领域专家: C/C++技术领域 领域专家: C/C++技术领域
工具平台和程序库 24,850 成员 27,330 内容