STL的基本操作指令
list :
Lists將元素按順序儲存在鏈表中. 與 向量(vectors)相比, 它允許快速的插入和刪除,但是隨機訪問卻比較慢.
assign() 給list賦值
back() 返回最後一個元素
begin() 返回指向第一個元素的叠代器
clear() 刪除所有元素
empty() 如果list是空的則返回true
end() 返回末尾的叠代器
erase() 刪除一個元素
front() 返回第一個元素
get_allocator() 返回list的配置器
insert() 插入一個元素到list中
max_size() 返回list能容納的最大元素數量
merge() 合並兩個list
pop_back() 刪除最後一個元素
pop_front() 刪除第一個元素
push_back() 在list的末尾添加一個元素
push_front() 在list的頭部添加一個元素
rbegin() 返回指向第一個元素的逆向叠代器
remove() 從list刪除元素
remove_if() 按指定條件刪除元素
rend() 指向list末尾的逆向叠代器
resize() 改變list的大小
reverse() 把list的元素倒轉
size() 返回list中的元素個數
sort() 給list排序
splice() 合並兩個list
swap() 交換兩個list
unique() 刪除list中重復的元素
String類:
1) string s; //生成一個空字符串s
2) string s(str) //拷貝構造函數生成str的復制品
3) string s(str,index) //將字符串str內“始於位置index”的部分當作字符串的初值
4) string s(str,index, n) //將字符串str內“始於index且長度頂多n”的部分作為字符串的初值
5) string s(cstr) //將C字符串作為s的初值
6) string s(chars,chars_len) //將C字符串前chars_len個字符作為字符串s的初值。
7) string s(n,c) //生成一個字符串,包含n個c字符
8) string s(str.begin(),str.end()) //以區間begin():end() (不包含end())內的字符作為字符串s的初值
1) =,assign() //賦以新值
2) swap() //交換兩個字符串的內容
3)+=,append(),push_back() //在尾部添加字符
4) insert() //插入字符
5) erase() //刪除字符
6) clear() //刪除全部字符
7) replace() //替換字符
8) + //串聯字符串
9)==,!=,<,<=,>,>=,compare() //比較字符串
10)size(),length() //返回字符數量
11) max_size() //返回字符的可能最大個數
12) empty() //判斷字符串是否為空
13) capacity() //返回重新分配之前的字符容量
14) reserve() //保留一定量內存以容納一定數量的字符
15) [ ], at() //存取單一字符
16)>>,getline() //從stream讀取某值
17) << //將謀值寫入stream
18) copy() //將某值賦值為一個C_string
19) c_str() //將內容以C_string返回
20) data() //將內容以字符數組形式返回
21) substr() //返回某個子字符串
22)查找函數
23)begin() end() //提供類似STL的叠代器支持
24) rbegin() rend() //逆向叠代器
25) get_allocator() //返回配置器
vector動態數組
1 包含頭函數 #include<vector>
2 函數的聲明: vector<int> v;
vector<int> v[maxn];
vector<int> v(100,1); //100個1
3 操作常用:
v.push_back(x); 在最後添加一個元素x
v.pop_back(); 刪去最後一個元素
v.begin(); 返回第一個元素的指針
v.end();返回最後一個元素的指針
v.at(n);返回n位置的元素
v.clear();清空數組
v.size();返回數組長度
v.front();返回第一個元素
v.back();返回最後一個元素
v.empty();如果數組為空返回true,否則返回false
v.resize(n);重新定義數組大小為n
set 元素
1、包含頭函數: #include<set>
2、函數聲明: set<int> s; (string等)
3、set是集合,不會包含重復的元素。因此可以用來查找統計不重復的元素
4、操作常用:
s.insert(x);插入元素x
s.erase(x);刪除元素x(如果x存在)
if (s.find(x)!=s.end()) 判斷元素是否屬於集合(因為如果不屬於返回值為s.end())
s.size();返回集合長度
s.empty();如果集合為空,則返回true
s.clear();清空集合
s.begin();指向第一個元素位置
s.end();指向最後一個元素後面
set<int>::iterator it; 定義一個指針
s.count(i); i 在集合中,返回 1
map 映射
1、包含頭函數: #include<map>
2、 函數聲明: map<int,string> m1;
map<string,int> m2;
3 map是將數據進行一對一的對應,使其更好描述。
4 操作常用:
(1)讀入數據:m1[1]="the_first_one";
(2)數據大小:len=m.size();
(3) 數據遍歷:for(int i=1;i<=len;i++) cout<<m1[i];
(4)數據查找:m.count() ;不能返回位置,只返回true、false;
m.find(); 返回位置指針,不在中就返回m.end();
(5)數據清空:m.clear();
queue 隊列
1、包含頭函數 #include<queue>
2、聲明: queue<int> q;
3、queue在隊列的使用中,較自定義的數組更方便,所以常使用在廣搜中。
4、操作常用:
q.empty();如果隊列為空則返回true
q.front();返回隊列第一個值
q.pop();刪除隊列最後一個
q.push(x);添加x到隊列最後
q.size();返回隊列長度
(資料為搜索所得,如有侵權,聯系立刪)
STL的基本操作指令