# vector 类

一些名词:

循秩访问,插入删除遍历查询替换,加倍扩容,分摊复杂度,置乱,无序查找,有序二分查找,去重,排序 blabla... 摸了摸了

# 声明

理解为可变大小的数组,自动调整大小,用 vector <TypeName> Name; 声明。

解决初始数据规模未知 又懒得手写动态数组 的问题, 常与 <algorithm> 库混合使用所以懒啊

# 常用函数

常用函数与 array 类似:[C++ 笔记] string 类与 array 类

实例:

#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
void print(vector <int>& v)
{
    for (auto i : v)
        cout << i << ' ';
    cout << endl;
}
int main()
{
    vector <int> v{2, 3, 1, 4}; // C++17 已引入对模板类型自动推导,C++17 可省略 & lt;int>
    cout << v.size() << ' ' << v.empty() << endl; // 4 0
    v.pop_back();
    print(v); // 2 3 1
    sort(v.begin(), v.end());
    print(v); // 1 2 3
    sort(v.rbegin(), v.rend());
    print(v); // 3 2 1
    v.push_back(4);
    print(v); // 3 2 1 4
    reverse(v.begin() + 1, v.end() - 1);
    print(v); // 3 1 2 4 
    vector <int> v2(v.begin(), v.end() - 1);
    print(v2); //3 1 2
    v2.insert(v2.begin() + 1, 4);
    print(v2); // 3 4 1 2 
    vector <int> v3(5, 3);
    v3[0] = 2;
    print(v3); // 2 3 3 3 3
    v2.swap(v3);
    print(v2); // 2 3 3 3 3
    print(v3); // 3 4 1 2
    return 0;
}

# C++11 原生字符串

消除转义符,方便正则之类的书写,,所以学正则的时候再说,现在摸了

使用方法: R"delimter(raw_characters)delimter" //delimter 两侧相同即可,可不加。

其实就是括号里的内容,括号里的内容会被原封不动地照搬。

<img src="https://s3.ax1x.com/2021/02/03/yQxDeI.png" width="500px">

据说还支持 Unicode 什么的,现在用不到先摸了 (´▽`) ノ♪

# C++14 字符串字面量

已对 ""s 进行重载表示字符串字面量,区别于 const char* 。例如 auto 的推断。

# stack 类

写好的栈,用法同 vector,下列区别:

函数功能
s.top()返回栈顶元素
s.push()压入栈顶
s.pop()弹出栈顶
更新于