08 2013 档案

C++ multimap容器访问同一键值元素的不同方法
摘要:multimap是一种多元map容器,允许一个键对应多个值。本文介绍了multimap访问同一键值元素的三种不同方法,详细看下面代码: 1 typedef multimap::size_type mstype; 2 typedef multimap::iterator mulit; 3 multimap mulmap; 4 //插入元素 5 mulmap.insert(make_pair("abc",2)); 6 mulmap.insert(make_pair("abc",3)); 7 mulmap.insert(make_pair("bcd& 阅读全文

posted @ 2013-08-19 15:25 jfcspring 阅读(1998) 评论(1) 推荐(0)

C++ 关联容器之map插入相同键元素与查找元素操作
摘要:一、插入相同键元素操作(1)insert方法在map中的键必须是唯一的,当想map中连续插入键相同但值不同的元素时,编译和运行时都不会发生任何错误,系统会忽略后面的对已存在的键的插入操作,如1 map m1;2 m1.insert(make_pair(1,2));3 m1.insert(make_pair(1,3));4 for(map::iterator mit=m1.begin();mit!=m1.end();mit++){5 coutfirstsecond m1;2 m1[1]=2;3 m1[1]=3;4 for(map::iterator mit=m1.begin();mit!... 阅读全文

posted @ 2013-08-18 17:20 jfcspring 阅读(7820) 评论(2) 推荐(1)

C++ 顺序容器适配器
摘要:在c++中适配器按我的理解就是一种基于容器之上的,进一步封装的容器。适配器的所有接口都是由底层容器提供或进一步封装,去适应特定的应用。顺序容器适配器包括三种:stack,queue和priority_queue。1. stackstack所关联的容器可以是list,vector或deque的任意一种,其默认的是基于deque实现的。2. queuequeue允许执行的操作是在容器末尾添加元素,在首部弹出元素,所以对于queue的底层容器必须能提供push_back()和pop_front()操作,因此queue只能基于list或deque容器。不能建立在vector上,因为vector不提供p 阅读全文

posted @ 2013-08-18 15:20 jfcspring 阅读(329) 评论(0) 推荐(0)

C++ string和c类型字符数组的比较
摘要:在c++中string是很方便操作的字符串,支持多种算数运算和比较运算,操作起来非常灵活。string也具有一些容器的性质,可以通过迭代器对字符元素进行访问c类型的字符数组有如下三种初始化方式://前两种的初始化方式是等同的,最后一种没有‘\0’char *cp="hello";char c_arr[]="hello";char c_arr2[]={'h','e','l','l','o'};这三种定义c字符串的方式,其中前两种虽然形式不一样但含义是一摸一样的,没有差别,在计算 阅读全文

posted @ 2013-08-17 20:59 jfcspring 阅读(2521) 评论(2) 推荐(0)

C++ 顺序容器 vector list deque 之比较
摘要:在C++标准库中定义了三种顺序容器类型:vector,list和deque。所谓顺序容器就是根据位置来存储和访问元素,元素的排列次序与元素的值无关,而是由元素添加到容器的次序决定的。vector的底层存放空间是像数组一样连续的空间,但vector容器是可以自增长的,当vector插入元素时,使其所需空间超过最初分配的空间时,vector就会再找一个更大的连续的空间存放之前的旧元素和新添加的元素,然后释放之前的空间。而如果是这样的增长机制,势必会影响vector插入新元素的性能。因为如果有连续的插入操作,则每一次都要进行申请空间,复制元素,释放空间的操作。幸运的是,在vector分配内存的机制是 阅读全文

posted @ 2013-08-17 17:01 jfcspring 阅读(808) 评论(0) 推荐(0)

导航