map与vector

原创 2007年10月01日 22:10:00
当向map容器中插入数据,用迭代器输出是会按顺序输出
如下:


#include <iostream>
#include <string>
#include <map>
using namespace std;
 

typedef pair <string, string> Str_Pair;

int main(void)
{

    map<string,string> mymap;

    typedef map<string,string>::iterator CIR;

 
    mymap.insert(Str_Pair("abcd","唐伯虎点秋香"));
    mymap.insert(Str_Pair("ab","唐伯虎点秋香"));
    mymap.insert(Str_Pair("abc","唐伯虎点秋香"));
    mymap.insert(Str_Pair("a","唐伯虎点秋香"));
   
    for(CIR npos=mymap.begin(); npos!=mymap.end();npos++)
    {
        cout<<npos->first<<"   "<<npos->second<<endl;
    }
 
    return 0;
}
 
输出结果为:

a   唐伯虎点秋香

ab   唐伯虎点秋香

abc   唐伯虎点秋香

abcd   唐伯虎点秋香

 
但是有的时候我们不要求输出有序,即按照插入的顺序输出
下面用vector容器模拟这种情况(对于查找这种方法速度没有map快)

#include <iostream>
#include <string>
#include <vector>
using namespace std;
 

typedef pair <string, string> Str_Pair;

 
int main(void)
{
    vector<Str_Pair> mymap;
    typedef vector<Str_Pair>::iterator CIR;
 
    mymap.push_back(Str_Pair("abcd","唐伯虎点秋香"));
    mymap.push_back(Str_Pair("ab","唐伯虎点秋香"));
    mymap.push_back(Str_Pair("abc","唐伯虎点秋香"));
    mymap.push_back(Str_Pair("a","唐伯虎点秋香"));
   
    for(CIR npos=mymap.begin(); npos!=mymap.end();npos++)
    {
        cout<<npos->first<<"   "<<npos->second<<endl;
    }
 
    return 0;
}
 
 
输出结果为:
abcd   唐伯虎点秋香
ab   唐伯虎点秋香
abc   唐伯虎点秋香

a   唐伯虎点秋香

 
版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

几种常见 容器 比较和分析 hashmap, map, vector, list ...hash table

转自:http://www.haogongju.net/art/1543058   list支持快速的插入和删除,但是查找费时; vector支持快速的查找,但是插入费时。 m...

pET_vector_map_质粒载体图谱

  • 2014-12-04 13:16
  • 2.90MB
  • 下载

ArrayList、LinkedList、 Vector、Map 用法比较

ArrayList和Vector是采用数组方式存储数据,此数组元素总数大于实际存储的数据个数以便增加和插入元素,二者都允许直接序号索引元素,但是插入数据要移动数组元素等内存操作,所以它们索引数据快、插...

Java中List,ArrayList、Vector,map,HashTable,HashMap区别用法

ArrayList 和Vector是采用数组方式存储数据,此数组元素数大于实际存储的数据以便增加和插入元素,都允许直接序号索引元素,但是插入数据要设计到数组元素移动 等内存操作,所以索引数据快插入...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)