< 1 > vector(变长数组) :

头文件:  

      #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)内的所有元素;