Splice():将某个链表的某一部分剪切到另一链表中。
Merge():归并排序两个链表的东西,注意两个链表应该有序,否则该函数不保证结果有序。
以上两者都是剪切操作。
Push_front():从开头插入元素。
Pop_front():从开头删除元素。
注意,vector无以上两者函数,针对一些两者间代码的移植操作,最好使用具有广泛性的函数,也即用push_back()、pop_back()函数。
Unique():删除连续出现的重复元素。注意该容器需有序。
下标操作比vector慢,但是插入删除操作较快。
双端队列。Vector操作加上list的前端操作。
属于适配器,适配器不拥有迭代器。使用deque实现。
先进后出。Top()、push()、pop()。
属于适配器,适配器不拥有迭代器。使用deque实现。
先进先出。
每个元素有一个键值KEY。
插入操作
有三种方式。
map<int,string> m1;
m1.insert(pair<int,string>(5,"dsadadsdf"));
p = m1.insert(map<int,string>::value_type(1,"a"));
m1[1] = "dsa";
前两种方式均有进行检查,一旦KEY值已存在,则不执行插入操作。最后一种方式则始终执行插入操作。前两种方式声明一个pair,将insert操作的返回值赋给它,然后进行判断看是否插入成功。如下:
pair<map<int,string>::iterator,bool> p;
p = m1.insert(map<int,string>::value_type(1,"a"));
以下是插入操作示例代码。
map<int,string> m1;
pair<map<int,string>::iterator,bool> p;
map<int,string>::iterator pm1;
m1.insert(pair<int,string>(5,"dsadadsdf"));
p = m1.insert(map<int,string>::value_type(1,"a"));
cout << p.second << endl;
p = m1.insert(map<int,string>::value_type(2,"AS"));
cout << p.second << endl;
p = m1.insert(map<int,string>::value_type(1,"AfdsS"));
cout << p.second << endl;
for(pm1 = m1.begin();pm1 != m1.end();pm1++)
{
cout << pm1->second << "/t" ;
}
cout << endl;
m1[1] = "dsa";
for(pm1 = m1.begin();pm1 != m1.end();pm1++)
{
cout << pm1->second << "/t" ;
}
cout << endl;
输出:
1
1
0
a AS dsadadsdf
dsa AS dsadadsdf
请按任意键继续. . .