c++ map set 互转 transform
突然想到的这个问题,一时不知道如何解决了,请高手指点。情景很简单,假设我现在有一个map的结构,我现在想把这个map中的键值复制一份到vector的容器中。最简单的办法自然就是(假设m代表map, v代表vector):int GetKey(const pair& element) {return element.first;}int _tmain(int argc, _TCH
·
突然想到的这个问题,一时不知道如何解决了,请高手指点。
情景很简单,假设我现在有一个map<int, int>的结构,我现在想把这个map中的键值复制一份到vector<int>的容器中。最简单的办法自然就是(假设m代表map, v代表vector):
int GetKey(const pair<int, int>& element) {return element.first;}
int _tmain(int argc, _TCHAR* argv[])
{
//Do something
map<int, int> m;
m[0] = 1;
vector<int> v;
transform(m.begin(), m.end(), back_inserter(v), GetKey);
}
现在我对这个方法不满意,希望把GetKey写成模板函数,讨教各位高招。
情景很简单,假设我现在有一个map<int, int>的结构,我现在想把这个map中的键值复制一份到vector<int>的容器中。最简单的办法自然就是(假设m代表map, v代表vector):
int GetKey(const pair<int, int>& element) {return element.first;}
int _tmain(int argc, _TCHAR* argv[])
{
//Do something
map<int, int> m;
m[0] = 1;
vector<int> v;
transform(m.begin(), m.end(), back_inserter(v), GetKey);
}
现在我对这个方法不满意,希望把GetKey写成模板函数,讨教各位高招。
更多推荐
已为社区贡献1条内容
所有评论(0)