头文件:
#include<vector>
定义:
vector<int> name; vector<int> vi; 二维:vector<int> vi[i];
vector<double> name;
vector<char> name;
vector<nod> name;//node 是结构体的类型
访问:
(1):通过下标访问,直接 a[0],a[1];
(2):通过迭代器访问,vector<int> :: iterator it; vector<int> :: iterator it = vi.begin();
常用函数:
(1)push_back():
push_back(x)就是在 vector 后面添加元素x,时间复杂度为O(1);
(2)pop_back();
pop_back()就是删除 vector 尾元素,时间复杂度为O(1);
(3)size();
size()用来获得 vector 中元素的个数(整型),时间复杂度O(1);
(4)clear();
clear()用来清空 vector 中所有元素,时间复杂度为O(N);
(5)insert();
insert(it, x)用来向 vectir 的任意迭代器 it 处插入一个元素 x,时间复杂度O(N);
(6)erase();
erase()两种用法:1)删除单个元素 2)删除一个区间内的所有元素,时间复杂度均为O(N);
1):erase(it)即删除迭代器为 it 处的元素;
2):erase(first, last)即删除 [first, last)内的所有元素;
< 2 > set(集合) :头文件:
#include<set>
定义:
set<typename> name; vector<int> vi; 二维:vector<int> vi[i];
访问:
只能通过迭代器访问,set<typename> :: iterator it; vector<int> :: iterator it = vi.begin();
常用函数:
(1)insert();
insert(x) 用来向 set 的容器中插入一个元素 x,时间复杂度O(logN);
(2)find();
find(x)返回set中对应值为 x 的迭代器,时间复杂度为O(logN);
(3)erase();
erase()两种用法:1)删除单个元素 2)删除一个区间内的所有元素,时间复杂度均为O(N);
1):erase(it)即删除迭代器为 it 处的元素;
2):erase(first, last)即删除 [first, last)内的所有元素;
(4)size();
size()用来获得 set 中元素的个数(整型),时间复杂度O(1);
(4)clear();
clear()用来清空 set 中所有元素,时间复杂度为O(N);
< 3 > string :头文件:
#include<string>
定义:
string str; string str = "abcd";
输入输出:
只能使用 cin 和 cout;
访问:
(1):通过下标访问,直接 str[0],str[1];
(2):通过迭代器访问,vector<int> :: iterator it; vector<int> :: iterator it = vi.begin();
常用函数:
(1)operator:
两个字符串可以之间相加;
(2)compare operator;
两个字符串可以直接使用 > >= < <= !等比较大小,比较规则是字典序;
(3)length() / size();
返回 string 的长度,时间复杂度O(1);
(4)clear();
clear()用来清空所有元素,时间复杂度为O(N);
(5)insert();
insert()两种用法:
1):insert(pos, sting)在 pos 处插入字符串 string,时间复杂度O(N);
2):insert(it,it2,it3)通过迭代器在 it 位置插入 待插字符串的首~尾位置的字符串;
(6)erase();
erase()两种用法:1)删除单个元素 2)删除一个区间内的所有元素,时间复杂度均为O(N);
1):erase(it)即删除 it 处的元素;
2):erase(first, last)即删除 [first, last)内的所有元素;
(7)substr()
substr(pos,len)返回从pos号位开始,长度位 len 的子串,时间复杂度O(len);
(8)string :: npos()
值为 - 1,作为返回失败时的值;
(9)find()
str.find(str2),当str2是str的子串时,返回其在str中第一次出现的位置,否则返回 string::npos,时间复杂度O(N);
(10)replace()
1):str.replace(pos,len,str2),把str从pos位开始,长度为len的的子串替换为 str2,时间复杂度O(N);
2):str.replace(it,it2,str)把 str 迭代器的 [it,it2) 位置的子串替换为str2;
< 4 > map :头文件:
#include<map>
定义:
vector<typename1, typename2 > name; vector<int> vi; 二维:vector<int> vi[i];
vector<double> name;
vector<char> name;
vector<nod> name;//node 是结构体的类型
访问:
(1):通过下标访问,直接 a[0],a[1];
(2):通过迭代器访问,vector<int> :: iterator it; vector<int> :: iterator it = vi.begin();
常用函数:
(1)push_back():
push_back(x)就是在 vector 后面添加元素x,时间复杂度为O(1);
(2)pop_back();
pop_back()就是删除 vector 尾元素,时间复杂度为O(1);
(3)size();
size()用来获得 vector 中元素的个数(整型),时间复杂度O(1);
(4)clear();
clear()用来清空 vector 中所有元素,时间复杂度为O(N);
(5)insert();
insert(it, x)用来向 vectir 的任意迭代器 it 处插入一个元素 x,时间复杂度O(N);
(6)erase();
erase()两种用法:1)删除单个元素 2)删除一个区间内的所有元素,时间复杂度均为O(N);
1):erase(it)即删除迭代器为 it 处的元素;
2):erase(first, last)即删除 [first, last)内的所有元素;