/*cb01a_c++_数据结构_顺序容器_STL_deque类deque是一个动态数组,比vector更加灵活.两者都属于动态数组deque与vector非常类似deque可以在数组开头和末尾插入和删除数据vector只能在数组的末尾插入和删除数据 distance算法size_t nOffset = distance(a.begin(),iElementLocater);//计算a.begin()与iElementLocator之间的距离a.begin()位置不变,iElementLocat…
/*cb02a_c++_数据结构_顺序容器_STL_list类_双向链表实例化std::list对象在list开头插入元素在list末尾插入元素在list中间插入元素,插入时间恒定,非常快.数组:中间插入慢.删除list中的元素对list中元素进行反转和排序 通过指针指向下一个节点//链表不是数组,没有下标.只能使用迭代器*/ /*cb02a_c++_数据结构_顺序容器_STL_list类_双向链表 实例化std::list对象 在list开头插入元素 在list末尾插入元素 在list中间插入…
/*cb03a_c++_数据结构_顺序容器_STL_stack堆栈:LIFO--Last In First Out后进先出,用于系统程序设计自适应容器(容器适配器),不是独立的容器,是一个适配器栈适配器STL stackstack<int,deque<int> s;stack<int, vector<int>> s;stack<int,list<int> s;s.empty(),堆栈是否空s.size();堆栈有多少个数据s.pop();堆栈弹出…
#ifndef __MY_SEQLIST_H__ #define __MY_SEQLIST_H__ typedef void SeqList; typedef void SeqListNode; //链表 创建 SeqList* SeqList_Create(int capacity); //链表 销毁 void SeqList_Destroy(SeqList* list); ////链表 清空 void SeqList_Clear(SeqList* list); //链表 长度 int Seq…
https://wenku.baidu.com/view/f6ca11f5ee06eff9aef807cb.html…
/*cb16a_c++_顺序容器的选用_排序_二分查找顺序容器: 1.vector的优点与缺点 vector优点:排序利用下标,快速排序,做二分查找非常快 2.list的优点与缺点 list优点:插入,删除速度快.vector插入,删除速度慢. list缺点:排序慢 3.deque的优点与缺点 优点:快速排序,双端操作. 缺点:比vector操作慢一点点插入操作如何影响容器的选择---list元素的访问如何影响容器的选择---vector选择容器的提示---不知道选择哪个,就vector. 因为…
/*cb06a_c++_顺序容器的定义顺序容器:vector,数组,尾端操作数据,快速随机访问list 链表,快速插入数据deque数组,双端-首尾操作数据,方便两端的数据访问 顺序容器适配器:stackqueuepriority_queue 一种容器的数据初始化另一种类型容器 //用迭代器,vector容器初始化list. list<string> slist(svec.begin(),svec.end());关联容器:xxx 字符串数组:char str1[]="abc"…
cb22a_c++_标准模板库_STL_map_multimap红黑树(数据结构)关联容器map(映射,key不能重复,一对一对的,value_type(1, "one")),multimap(多映射key可以重复)红黑树(数据结构)map,multimap就是红黑树-二叉树基本操作insert:4 种方法count和finderase:3种方法注意:不能通过find进行修改. a.insert(map<int, string>::value_type(1, "o…
cb14a_c++_顺序容器的操作7_赋值与交换(swap) vector数据赋值给list, slist.assign(svec.begin(), svec.end());//这样可以转 svec->slist c1=c2; //c2容器的数据赋值给c1c1.swap(c2); //c1与c2数据交换c.assign(b,e); //用于赋值,类型兼容就可以 svec.assign(slist.begin(), slist.end()); //string不能转成字符指针,指针可以转strin…
/*ca13a_c++_顺序容器的操作6删除元素c.erase(p) //删除迭代器p指向的位置c.erase(b,e) //删除b to e之间的数据,迭代器b包括,e不包括c.clear()//删除所有c.pop_back() //删除最后一个c.pop_front() //删除最前的一个find查找算法list<string>::iterator iter1= find(slist.begin(), slist.end(), s);注意:c.pop_front()只适用于list和deq…