一、向vector容器中增添元素
1、在末尾增添一个元素 push_back()
2、在任意地方插入一个或多个元素 insert()
#include<iostream> #include<vector> // 注意这里不用.h using namespace std; int main() { vector<int> demo {1,2,3,4}; // 在末尾增添一个元素 demo.push_back(5); for(auto c : demo) cout << c << " "; cout << endl; // 在下标为2的位置,插入了9 demo.insert(demo.begin() + 2,9); for(auto c : demo) cout << c << " "; cout << endl; // 在下标为2的位置,插入了3个6 demo.insert(demo.begin() + 2,3,6); for(auto c : demo) cout << c << " "; cout << endl; return 0; } 运行结果如下: 1 2 3 4 5 1 2 9 3 4 5 1 2 6 6 6 9 3 4 5
3、二维容器定义和初始化
vector<vector<int>> ans(size1, vector<int>(size2, 0)); // 定义size1行,size2列的容器,全部初始化为0
参考文章:https://blog.csdn.net/BShanj/article/details/113817328
4、初始化二维vector的两种方式
一种是用push_back往二维容器中添加一维容器
一种是给 v[ ][ ] 直接赋值,具体见参考文章
参考文章:https://blog.csdn.net/a819825294/article/details/52088732
二、sort排序函数
1、算法题中要用到二分法,一般是需要先进行排序的,因为只有这样,才能够进行范围的缩减,如果不排序乱成一团芝麻糊,那你怎么知道left要往哪边移,right要往哪边移。
像最长上升子序列II,用了二分法,但是却不需要排序,是因为,它是从0个数开始,贪心的一点一点地把比它大的数排在后面,导致数组在要插入一个数的时候,已经就是相当于排好序的,所以就不用去排序了。
2、sort排序的时间复杂度是O(N*log2n),比冒泡排序之类的算法还要快一点。
3、sort(首地址,尾地址,比较排序的方法cmp)
首地址是闭合的,尾地址是开的,cmp是比较大小的方法,是从大到小还是从小到大,若没写则是默认从小到大。
4、sort函数包含在#include<algorithm>头文件中。
5、数组也可以用sort去排序,具体如下:
int a[1100]; sort(a,a+n);
参考文章:https://blog.csdn.net/qq_46527915/article/details/114597901
转载请注明出处:http://www.syxf119.net/article/20230327/714509.html