顺序容器的添加.访问.删除操作以及forward_list的特殊操作,还有迭代器失效问题. 一.向容器添加元素 // array不支持这些操作 // forward_list有自己撰于的版本的insert和emplace // forward_list不支持push_back和emplace_back // vector和string不支持push_front和emplace_front c.push_back(t); 在c的尾部创建一个值为t或由arg创建的元素 c.emplace_back(…
顺序容器属于C++ STL的一部分,也是非常重要的一部分. 顺序容器包括: std::vector,包含在头文件<vector>中 std::string, 包含在头文件<string>中 std::deque,包含在头文件<deque>中 std::list,包含在头文件<list>中 std::forward_list,包含在头文件<forward_list>中 std::array, 包含在头文件<array>中 顺序容器几乎可…
由于书籍上写的已经很经典了,故大部分用图片的形式来阐述概念,代码纯手打进行验证. 1.顺序容器类型:vector.deque.list.forword_list.array.string. 2.顺序容器概述: 3.小结 4. 验证代码如下: #include <iostream> #include <vector> #include <array> #include <string> #include <list> using namespace…
第9章 顺序容器 引: 顺序容器: vector 支持快速随机访问 list 支持快速插入/删除 deque 双端队列 顺序容器适配器: stack 后进先出栈 queue 先进先出队列 priority_queue 有优先级管理的队列 1. 容器元素的初始化 C<T> c; //empty C c(c2); //副本 C c(b, e); //迭代器 C c(n, t); //n个相同元素 // 以下只适用于顺序容器 C c(n); 2. 容器内元素的类型约束 (1)元素必须支持赋值运算 (…
顺序容器概述 顺序容器的类型有: 类型 说明 vector 可变长度数组. 支持快速随机访问. deque 双端队列. 支持快速随机访问. list 双向链表. 只支持双向顺序访问. forward_list 单向链表. 只支持单向顺序访问. array 固定大小数组. string 与vector相似的容器, 专门用于保存字符串. string和vector将元素保存在连续的内存空间中, 因而支持随机访问. list和forward_list是链表的数据结构, 在容器的任何位置添加和删除元素都…
顺序容器类型 类型 解释 vector 可变大小数组.支持快速随机访问.在尾部之外的位置插入或删除元素可能很慢 deque 双端队列.支持快速随机访问.在头尾位置插入.删除速度很快 list 双向链表.只支持双向顺序访问.在list中任何位置进行插入.删除操作速度都很快 forward_list 单向链表.只支持单向顺序访问.在链表任何位置进行插入.删除操作速度都很快 array 固定大小数组.支持快速随机访问.不能添加或删除元素 string 与vector相似的容器,但专门用于保存字符.随机…
cb09a_c++_顺序容器的操作2在顺序容器中添加元素vector不能向前插入数据,list可以用insertc.push_back(t);c.push_front(t);c.insert(p,t);在迭代器p,插入tc.insert(p,n,t);在迭代器p,插入n个tc.insert(p,b,e);把迭代器b,e之间的数据,插入到迭代器p指向的位置.容器元素都是副本添加元素可能会使迭代器失效避免存储end操作返回的迭代器 welcome to discusstxwtech@163.com…
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…
ca12a_c++顺序容器的操作5_访问容器中的数据元素访问元素:c.back()..显示最后一个数据c.front() ..显示第一个数据c[n],n就是下标,适合vector与dequec.at(n),n就是下标,适合vector与deque 顺序容器:vector,dequelisttxwtech /*ca12a_c++顺序容器的的操作5_访问容器中的数据元素 访问元素: c.back()..显示最后一个数据 c.front() ..显示第一个数据 c[n],n就是下标,适合vector与…