C++如何将map 复制到vector?

内容来源于 Stack Overflow,并遵循CC BY-SA 3.0许可协议进行翻译与使用

  • 回答 (2)
  • 关注 (0)
  • 查看 (327)

在C++中,将一对映射复制到向量的最佳方法是什么?

提问于
用户回答回答于

代码:

#include <iostream>
#include <vector>
#include <map>
#include <algorithm>
#include <iterator>

using namespace std;

bool cmp(const pair<int, int>  &p1, const pair<int, int> &p2)
{
    return p1.second < p2.second;
}

int main()
{
    map<int, int> m;
    for(int i = 0; i < 10; ++i)
        m[i] = i * -i;

    vector<pair<int, int> > v;
    copy(m.begin(), m.end(), back_inserter(v));

    sort(v.begin(), v.end(), cmp);

    for(int i = 0; i < v.size(); ++i)
        cout << v[i].first << " : " << v[i].second << endl;
    return 0;
}
用户回答回答于
vector<pair<K,V> > v(m.begin(), m.end());

vector<pair<K,V> > v(m.size());
copy(m.begin(), m.end(), v.begin());

copy()<algorithm>

扫码关注云+社区

领取腾讯云代金券