cb16a_c++_顺序容器的选用_排序_二分查找
/*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;
}
//链表排序后,没有下标,不能随机操作,不能用二分查找。只能线程查找
*/
1 /*cb16a_c++_顺序容器的选用_排序_二分查找 2 顺序容器: 3 1.vector的优点与缺点 4 vector优点:排序利用下标,快速排序,做二分查找非常快 5 2.list的优点与缺点 6 list优点:插入,删除速度快。vector插入,删除速度慢。 7 list缺点:排序慢 8 3.deque的优点与缺点 9 优点:快速排序,双端操作。 10 缺点:比vector操作慢一点点 11 插入操作如何影响容器的选择---list 12 元素的访问如何影响容器的选择---vector 13 选择容器的提示---不知道选择哪个,就vector. 因为vector可以转list或者deque 14 vector sort算法排序。。。 15 vector 排序后,做二分查找非常快 16 if (binary_search(v.begin(), v.end(),70))//二分查找,找70. 17 { 18 cout << "找到了" << endl; 19 } 20 //链表排序后,没有下标,不能随机操作,不能用二分查找。只能线程查找 21 */ 22 23 #include <iostream> 24 #include <list> 25 #include <vector> 26 #include <deque> 27 #include <algorithm> 28 29 using namespace std; 30 31 int main() 32 { 33 vector<int> v; 34 list<int> l; 35 deque<int> d; 36 d.push_back(50); 37 d.push_front(10);//双端操作 38 39 40 v.push_back(10); 41 v.push_back(90); 42 v.push_back(50); 43 vector<int>::iterator vi = v.begin(); 44 ++vi; 45 ++vi; 46 v.insert(vi, 70);//插入在vi迭代器前,70 47 vi = v.begin(); 48 ++vi; 49 v.erase(vi);//删除后,后面的数据向前移动 50 sort(v.begin(),v.end());//排序后,做二分查找非常快 51 //二分查找 52 if (binary_search(v.begin(), v.end(),70))//二分查找,找70. 53 { 54 cout << "找到了" << endl; 55 } 56 else 57 { 58 cout << "没找到" << endl; 59 } 60 61 62 l.push_back(10);//list插入速度快 63 l.push_back(90); 64 l.push_back(50); 65 list<int>::iterator li = l.begin(); 66 ++li; 67 ++li; 68 l.insert(li,20);//list插入速度快,动态创建节点,指针前后连接。 69 li = l.begin(); 70 ++li; 71 l.erase(li);//删除速度快。删除后,直接前后指针相连接 72 l.sort(); 73 if (binary_search(l.begin(), l.end(), 50))//链表没有下标,不能随机操作,不能用二分查找。只能线程查找 74 { 75 cout << "找到了" << endl; 76 } 77 else 78 { 79 cout << "没找到" << endl; 80 } 81 82 83 84 return 0; 85 }
欢迎讨论,相互学习。
cdtxw@foxmail.com