1.数组、列表类

1. 列表初始化

vector<int> nums //没有分配内存
vector<int> nums(list) //将 list 赋值到 nums
vector<int> nums={1,2,3…} //直接赋值
vector<int> nums(7,2) //有7个元素,每个元素为2.(nums(7)表示有7个元素,但是没有赋值。)

参考:vector 的六种 创建和初始化方法

2.列表数值插入

insert()

v.insert(v.begin(),8);//在最前面插入新元素。  
v.insert(v.begin()+2,1);//在迭代器中第二个元素前插入新元素  
v.insert(v.end(),3);//在向量末尾追加新元素

参考: c++ insert

push_back()

vector.push_back(line)
//在后面插入

2. 常用的 STL 函数

1. 排序函数: sort()

功能:对容器进行排序。
PS:适用于:array、vector、deque 三种容器。

#include < algorithm> 
//necessary file
sort(myvector.begin(), myvector.begin() + 4, greater<int>());
// 第三个参数可选,默认为升序排列。
sort(myvector.begin(), myvector.begin() + 4, less<int>());
//降序
reverse(vi.begin(),vi.end()); /// 从大到小 
//或者 reverse 函数。

时间复杂度为: n log ⁡ 2 ( n ) n\log_2(n) nlog2(n)

参考
1.C++ sort()排序函数用法详解
2. 自定义排序函数

2. 排序+合并:merge()函数

功能: 对排序规则一致的序列进行组合排序。

#include < algorithm> 
//necessary file
//该数组中存储有 2 个有序序列
int first[] = { 5,10,15,20,25,7,17,27,37,47,57 };
//用于存储新的有序序列
vector<int> myvector(11);
//将 [first,first+5) 和 [first+5,first+11) 合并为 1 个有序序列,并存储到 myvector 容器中。
merge(first, first + 5,  first + 5, first +11 , myvector.begin());
//1,2 指标指代第一个有序数组,3,4指代第二个,5代表重排之后存贮的数组。

//将 [first,first+5) 和 [first+5,first+11) 合并为 1 个有序序列。inplace_merge 存储在first 数组中。
inplace_merge(first, first + 5,first +11);

参考: c++ merge() 用法

3. 查找:find()

底层代码:

template<class InputIterator, class T>
InputIterator find (InputIterator first, InputIterator last, const T& val)
{
    while (first!=last) {
        if (*first==val) return first;
        ++first;
    }
    return last;
}

调用的是

//在 vector 中找 30
it = find(myvector.begin(), myvector.end(), 30)
cout<<*it<<endl; //输出的是其it点上的内容。
//return 找到的位置,即指针

参考C++ find()函数用法详解

4. 交换:swap()

swap(a,b)
// 交换 a b 的位置。
Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐