1. map的构造函数
map共提供了6个构造函数,这块涉及到内存分配器这些东西,略过不表,在下面我们将接触
到一些map的构造方法,这里要说下的就是,我们通常用如下方法构造一个map:
Map mapStudent;
2. 数据的插入
在构造map容器后,我们就可以往里面插入数据了。这里讲三种插入数据的方法
示例1:
[cpp] view plaincopy
- #pragma warning (disable:4786)
- #include
- #include
- #include
- using namespace std;
-
- typedef map<int,string> mymap;
-
- int main()
- {
- mymap student;
-
- student.insert(pair<int,string>(2,"student-two"));
- student.insert(mymap::value_type(3,"student-three"));
- student[1] = "student-one";
- //map会对插入元素按照Key进行排序
- mymap::iterator iter;
- for(iter = student.begin(); iter != student.end(); iter++)
- {
- cout<first<<" "<second<
- }
- return 0;
- }
以上三种用法,虽然都可以实现数据的插入,但是它们是有区别的,当然了第一种和第二种
在效果上是完成一样的,用insert函数插入数据,在数据的插入上涉及到集合的唯一性这个
概念,即当map中有这个关键字时,insert操作是插入数据不了的,但是用数组方式就不同
了,它可以覆盖以前该关键字对应的值,用程序说明
mapStudent.insert(map
::value_type (1, “student_one”));
mapStudent.insert(map::value_type (1, “student_two”));
上面这两条语句执行后,map中1这个关键字对应的值是“student_one”,第二条语句并没
有生效,那么这就涉及到我们怎么知道insert语句是否插入成功的问题了,可以用pair来获
得是否插入成功,程序如下
Pair