当前位置:  开发笔记 > 编程语言 > 正文

C++如何将地图复制到矢量

如何解决《C++如何将地图复制到矢量》经验,为你挑选了3个好方法。

在C++中将一对从地图复制到矢量的最佳方法是什么?我这样做,所以我可以随后对矢量进行排序.



1> wilhelmtell..:
vector > v(m.begin(), m.end());

要么

vector > v(m.size());
copy(m.begin(), m.end(), v.begin());

copy().


这个似乎更优雅和简单

2> CTT..:

这应该做你想要的:

#include 
#include 
#include 
#include 
#include 

using namespace std;

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

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

    vector > 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;
}



3> Spire..:

如果你使用的是std :: map,它已经按键排序了.只需创建一个迭代器并遍历地图从begin()到end(),然后就完成了.

如果您希望按地图键以外的其他内容进行排序,则可以使用相同的迭代器,并在迭代地图时将每个元素的副本推送到矢量上.

推荐阅读
Chloemw
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有