/*cb16a_c++_顺序容器的选用_排序_二分查找
顺序容器:
1.vector的优点与缺点
vector优点:排序利用下标,快速排序,做二分查找非常快
2.list的优点与缺点
list优点:插入,删除速度快。vector插入,删除速度慢。
list缺点:排序慢
3.deque的优点与缺点
优点:快速排序,双端操作。
缺点:比vector操作慢一点点
插入操作如何影响容器的选择---list
元素的访问如何影响容器的选择---vector
选择容器的提示---不知道选择哪个,就vector. 因为vector可以转list或者deque

参考:

https://www.cnblogs.com/txwtech/p/12317531.html
vector sort算法排序。。。
vector 排序后,做二分查找非常快
if (binary_search(v.begin(), v.end(),70))//二分查找,找70.
{
cout << "找到了" << endl;
}
//链表排序后,没有下标,不能随机操作,不能用二分查找。只能线程查找
*/

 /*cb16a_c++_顺序容器的选用_排序_二分查找
顺序容器:
1.vector的优点与缺点
vector优点:排序利用下标,快速排序,做二分查找非常快
2.list的优点与缺点
list优点:插入,删除速度快。vector插入,删除速度慢。
list缺点:排序慢
3.deque的优点与缺点
优点:快速排序,双端操作。
缺点:比vector操作慢一点点
插入操作如何影响容器的选择---list
元素的访问如何影响容器的选择---vector
选择容器的提示---不知道选择哪个,就vector. 因为vector可以转list或者deque
vector sort算法排序。。。
vector 排序后,做二分查找非常快
if (binary_search(v.begin(), v.end(),70))//二分查找,找70.
{
cout << "找到了" << endl;
}
//链表排序后,没有下标,不能随机操作,不能用二分查找。只能线程查找
*/ #include <iostream>
#include <list>
#include <vector>
#include <deque>
#include <algorithm> using namespace std; int main()
{
vector<int> v;
list<int> l;
deque<int> d;
d.push_back();
d.push_front();//双端操作 v.push_back();
v.push_back();
v.push_back();
vector<int>::iterator vi = v.begin();
++vi;
++vi;
v.insert(vi, );//插入在vi迭代器前,70
vi = v.begin();
++vi;
v.erase(vi);//删除后,后面的数据向前移动
sort(v.begin(),v.end());//排序后,做二分查找非常快
//二分查找
if (binary_search(v.begin(), v.end(),))//二分查找,找70.
{
cout << "找到了" << endl;
}
else
{
cout << "没找到" << endl;
} l.push_back();//list插入速度快
l.push_back();
l.push_back();
list<int>::iterator li = l.begin();
++li;
++li;
l.insert(li,);//list插入速度快,动态创建节点,指针前后连接。
li = l.begin();
++li;
l.erase(li);//删除速度快。删除后,直接前后指针相连接
l.sort();
if (binary_search(l.begin(), l.end(), ))//链表没有下标,不能随机操作,不能用二分查找。只能线程查找
{
cout << "找到了" << endl;
}
else
{
cout << "没找到" << endl;
} return ;
}

cb16a_c++_顺序容器的选用_排序_二分查找的更多相关文章

  1. cb02a_c++_数据结构_顺序容器_STL_list类_双向链表

    /*cb02a_c++_数据结构_顺序容器_STL_list类_双向链表实例化std::list对象在list开头插入元素在list末尾插入元素在list中间插入元素,插入时间恒定,非常快.数组:中间 ...

  2. cb14a_c++_顺序容器的操作7_赋值与交换(swap)_vector转list

    cb14a_c++_顺序容器的操作7_赋值与交换(swap) vector数据赋值给list, slist.assign(svec.begin(), svec.end());//这样可以转 svec- ...

  3. ca13a_c++_顺序容器的操作6删除元素

    /*ca13a_c++_顺序容器的操作6删除元素c.erase(p) //删除迭代器p指向的位置c.erase(b,e) //删除b to e之间的数据,迭代器b包括,e不包括c.clear()//删 ...

  4. cb11a_c++_顺序容器的操作4_容器大小操作_resize-max_size

    cb11a_c++_顺序容器的操作4 2 容器大小的操作 3 c.size() 容器当前的个数 4 c.max_size(),容器最大存储量 5 c.empty() 是否为空 6 c.resize(n ...

  5. cb10a_c++_顺序容器的操作3关系运算符

    cb10a_c++_cb09a_c++_顺序容器的操作3 2 顺序容器的操作3 3 关系运算符 4 所有的容器类型都可以使用 5 比较的容器必须具有相同的容器类型,double不能与int作比较 6 ...

  6. cb09a_c++_顺序容器的操作2-在顺序容器中添加元素_插入数据

    cb09a_c++_顺序容器的操作2在顺序容器中添加元素vector不能向前插入数据,list可以用insertc.push_back(t);c.push_front(t);c.insert(p,t) ...

  7. cb08a_c++_顺序容器的操作1

    cb08a_c++_顺序容器的操作1容器定义的类型别名begin(闭区间)和end(开区间)成员{first,last)左闭右开,左包括,右不包括,end()指向最后一个的下一个. /*cb08a_c ...

  8. cb06a_c++_顺序容器的定义

    /*cb06a_c++_顺序容器的定义顺序容器:vector,数组,尾端操作数据,快速随机访问list 链表,快速插入数据deque数组,双端-首尾操作数据,方便两端的数据访问 顺序容器适配器:sta ...

  9. cb03a_c++_数据结构_顺序容器_STL_stack

    /*cb03a_c++_数据结构_顺序容器_STL_stack堆栈:LIFO--Last In First Out后进先出,用于系统程序设计自适应容器(容器适配器),不是独立的容器,是一个适配器栈适配 ...

随机推荐

  1. docker的file内容解释

    关键字---重点啊) FROM 基础镜像,当前新镜像是基于哪个镜像的 MAINTAINER  镜像维护者的姓名和邮箱地址 RUN  容器构建时需要运行的命令 EXPOSE 当前容器对外暴露的端口 WO ...

  2. Java 对象的继承,抽象类,接口

    子父级继承 关键字 extends 首先创建一个父类 class Fu { String name; int a=1; public void word() { System.out.println( ...

  3. 转 vue动画总结

    使用过渡类名(有进入及出去,适合显示隐藏,需要配合v-if) .v-enter,//进入前 .v-leave-to {//离开后 只需要入场动画 可以把v-leave-to删掉 opacity: 0; ...

  4. nodejs 开发服务端 部署到 iis 服务器环境 -- iisnode 安装问题解决记录

    开发环境 nodejs: v10.15.3 windows: 10 iis: 10 需求: 用Nodejs开发了服务端,要部署到IIS 需要在IIS服务器上安装iisnode,结果遇到问题:安装不上 ...

  5. spark学习笔记总结

    Spark简介 spark 可以很容易和yarn结合,直接调用HDFS.Hbase上面的数据,和hadoop结合.配置很容易. spark发展迅猛,框架比hadoop更加灵活实用.减少了延时处理,提高 ...

  6. [安卓基础] 009.组件Activity详解

    *:first-child { margin-top: 0 !important; } body > *:last-child { margin-bottom: 0 !important; } ...

  7. pandas手册

    https://www.dataquest.io/blog/large_files/pandas-cheat-sheet.pdf

  8. 【转】最长公共子序列(LCS),求LCS长度和打印输出LCS

    求LCS的长度,Java版本: public static int LCS(int[]a,int[] b) { int [][]c=new int[a.length+1][b.length+1]; f ...

  9. Windows平台搭建Git服务教程详解

    引言 软件企业的核心就是代码,如何确保代码的安全?如何在团队开发中协同工作?为解决这些问题,我们需要采用相应的管理工具来满足管理的需求.探长从最初的VSS.SVN.TFS到现在的Git存储一路走来,感 ...

  10. Spring AOP学习笔记01:AOP概述

    1. AOP概述 软件开发一直在寻求更加高效.更易维护甚至更易扩展的方式.为了提高开发效率,我们对开发使用的语言进行抽象,走过了从汇编时代到现在各种高级语言繁盛之时期:为了便于维护和扩展,我们对某些相 ...