一、顺序容器的分类

  顺序容器:vector向量、list链表、deque双端队列;

  优先级最高的是vector向量,它的速度比较快,优点最多;

  在程序设计中,容器可以切换;

 #include <iostream>
#include <vector>
#include <list>
#include <deque> using namespace std; int main()
{
vector<int> Ivec;
list<int> Ilist; //利用链表
deque<int> Ideque; Ivec.push_back();
Ivec.push_back();
Ivec.push_back();
Ivec.push_back();
Ivec.push_back();
Ivec.push_back();
Ivec.push_back();
vector<int>::iterator it=Ivec.begin();
it++;
it++;
Ivec.insert(it, ); //插入操作比较慢,因为插入点之后的数据都需要向后移动
it++;
Ivec.erase(it); //删除操作也比较慢,数组中删除同样需要移动数据 sort(Ivec.begin(), v.end()); //速度比较快,sort中利用下标快速排序,
//存在下标,在排好序的情况下,利用二分法查找很快;
if(binary_search(Ivec.begin(), Ivec.end(), )){
std::cout << "find 59 ok" << std::endl;
}else{
std::cout << "find 59 error" << std::endl; sort(Ivec.begin(), v.end()); //速度比较快,sort中利用下标快速排序,
//存在下标,在排好序的情况下,利用二分法查找很快;
if(binary_search(Ivec.begin(), Ivec.end(), )){
std::cout << "find 59 ok" << std::endl;
}else{
std::cout << "find 59 error" << std::endl;
} Ilist.push_back();
Ilist.push_back();
Ilist.push_back();
Ilist.push_back();
Ilist.push_back();
Ilist.push_back();
list<int>::iterator it2=Ilist.begin();
it2++;
it2++;
Ilist.insert(it2, ); //插入操作比较快,因为链表的插入不需要移动数据
it2++;
Ilist.erase(it2); //在链表中直接操作指针即可 Ilist.sort(); //链表中排序比较慢
//二分法查找,在list是伪二分法查找,速度比较慢
if(binary_search(Ilist.begin(), Ilist.end(), )){
std::cout << "find 59 ok" << std::endl;
}else{
std::cout << "find 59 error" << std::endl;
} //deque,可以在前端操作,操作灵活,所有的操作比vector慢一点点,分区存储,可以保存大量数据
Ideque.push_back();
Ideque.push_front(); return ;
}

STL之如何选择顺序容器的更多相关文章

  1. C++——STL中三种顺序容器的简要差别

    C++ STL 提供了3个顺序容器 :vector, deque, list Vector动态数组.支持高速訪问:list双向链表,支持高速插入和删除. vector 中的元素是顺序存放的.所以随机訪 ...

  2. STL源码剖析—顺序容器

    一.vector 1.vector简介: vector的数据安排及其操作方式与数组非常相似,微小的差别在于空间的使用,数组是静态空间,一旦配置了就不能改变.vector是动态空间,随着元素的加入,它的 ...

  3. STL顺序容器【vector】【deque】【list】

    我们都知道,stl在集装箱船分为两类,订购集装箱和相关的容器. 顺序容器有三种即动态数组vector,双端队列deque,以及链表list (对csdn的文字排版严重吐槽.写好的版发表了就变了) 一: ...

  4. STL中map与hash_map容器的选择收藏

    这篇文章来自我今天碰到的一个问题,一个朋友问我使用map和hash_map的效率问题,虽然我也了解一些,但是我不敢直接告诉朋友,因为我怕我说错了,通过我查询一些帖子,我这里做一个总结!内容分别来自al ...

  5. STL之顺序容器

    顺序容器: vector:数组 list:链表 deque:双端数组 顺序容器适配器: stack:堆栈 queue:队列 priority_queue:优先级队列 deque是一个动态数组 dequ ...

  6. C++ STL 顺序容器--list + 关联容器

    list 双向链表,可以双向遍历,既指向前驱节点,又指向后继但不能随机访问任意元素,可动态增加或者减少元素,内存管理自动完成,增加任何元素都不会使迭代器失效, 删除元素时,除了指向当前被删元素的迭代器 ...

  7. STL顺序容器的基本操作

    容器主要分为:顺序容器和关联容器 顺序容器和关联容器,顺序容器主要有:vector.list.deque等.其中vector表示一段连续的内存地址,基于数组的实现,list表示非连续的内存,基于链表实 ...

  8. 侯捷STL学习(一)--顺序容器测试

    开始跟着<STL源码剖析>的作者侯捷真人视频,学习STL,了解STL背后的真实故事! 视频链接:侯捷STL 还有很大其他视频需要的留言 第一节:STL版本和重要资源 STL和标准库的区别 ...

  9. STL顺序容器用法自我总结

    顺序容器类型:vector.deque.list.forward_list.string.array. queue(单向队列)底层也是用deque(双端队列)实现的 a.swap(b); swap(a ...

随机推荐

  1. Objective-c (多输入参数的方法)

    一个方法可能具有多个输入参数.在头文件中,可以定义带有多个输入参数的方法: - (void)setIntX:(int)n andSetIntY:(int)d 下面通过一个例子来说明它的具体用法: #i ...

  2. JavaWeb解释一下什么是 servlet?

    Servlet是一种独立于平台和协议的服务端的java技术,可以生成动态WEB页面与传统的CGI(计算机图形接口)和其他类似的CGI技术相比.Servlet具有更好的可移植性.更强大的功能,更少的投资 ...

  3. linux下安卓编译apk环境搭建

    ubuntu下linux安卓编译环境搭建. 配置好编译环境 (前提是已经安装了jdk,可以用java -verison 命令查看) 一.设置环境变量 用vi  ~/.bashrc  打开编译环境 JA ...

  4. C#_socket拆包_封包_模拟乱序包

    拆包一直是个硬伤呀,MLGB的,服务端各种乱数据,果断整理下 拆包思路:设计一个网络协议,一般都会分包,一个包就相当于一个逻辑上的命令. .如果我们用udp协议,省事的多,一次会收到一个完整的包,但U ...

  5. [LeetCode]题解(python):108-Convert Sorted Array to Binary Search Tree

    题目来源: https://leetcode.com/problems/convert-sorted-array-to-binary-search-tree/ 题意分析: 给出一个排好序的数组,根据这 ...

  6. 前端笔试题2 JS部分

    笔试题2 var EventME = {}; EventME.addHandle = function(ele, eventName, handleFunction) { if (ele.addEve ...

  7. MVC-03 控制器(2)

    五.ActionResult解说 ActionResult的继承图: 类型 Controller辅助方法 用途帮助 ContentResult Content 回传一个用户自定义的文字属性 Empty ...

  8. ISO/IEC14443和15693的对比有何具体区别

    ISO14443 ISO14443A/B:超短距离智慧卡标准.这标准订出读取距离7-15厘米的短距离非接触智慧卡的功能及运作标准,使用的频率为13.56MHz.     ISO14443定义了TYPE ...

  9. BZOJ 1005 明明的烦恼 (组合数学)

    题解:n为树的节点数,d[ ]为各节点的度数,m为无限制度数的节点数. 则               所以要求在n-2大小的数组中插入tot各序号,共有种插法: 在tot各序号排列中,插第一个节点的 ...

  10. selenium - Headless Browser and scraping - solutions - Stack Overflow

    yum install pygtk2-devel   selenium - Headless Browser and scraping - solutions - Stack Overflow Hea ...