标准模板库
容器:各种各样的数据结构,存储数据:数组,联邦,栈,队列,树...
迭代器:提供了一种同一的方式去遍历容器中的数据
算法:处理数据,排序,查找,遍历...
容器算法迭代器关系
(1)#include <iostream>
#include <vector>
#include <algorithm>
容器:数据结构的封装,用来存储数据
数组:vector
vectot<int> v;
v.push_back(3);
v.push_back(2);
v.push_back(9);
v.push_back(10);//在尾部插入数据
(2)迭代器:给容器提供一种同一的遍历方式,相当于指针,指向容器中的某一个数据
begin();当前容器中第一个数据的迭代器
end();当前容器中最后一个元素的下一个元素的迭代器
vector<int>::iterator it;//iterator(迭代器类型) it(变量)
for(it = v.begin();it != v.end();it++)
{
cout << *it << endl;
}
/*while(it != v.end())
{
cout << *it << endl;
it++;
}*/
(3)算法:处理数据,排序,查找,反转,遍历...
统计:count
int num = count(v.begin(),v.end(),9);
cout << num << endl;
标准模板库--容器
1.默认构造
string:
string();//构造一个空的字符串
string s1;
vector:
vector<T> vecT;//一个存放T的...容器
vector<int> vecInt;//一个存放int的...容器
vector<float> vecFloat;//一个存放float的...容器
vectot<string> vecString;//一个存放string的...容器
...//尖括号内还可以设置指针类型或自定义类型
deque:
deque<T> deqT;
deque<int> deqInt;
deque<float> deqFloat;
deque<string> deqString;
...
stack:
stack<T> stkT;
stack<int> stkInt;
stack<float> stkFloat;
stack<string> stkString;
...
list:
list<T> lstT;
list<int> lstInt;
list<float> lstFloat;
list<string> lstString;
...
set/multiset:
set<T> setT;
set<int> setInt;
set<float> setFloat;
set<string> setString;
...
multiset<T> mulT;
multiset<int> mulInt;
multiset<float> mulFloat;
multiset<string> mulString;
...
map/multimap:
map<T1,T2> mapTT;
multimap<T1,T2> multimapTT;
map<int,char> mapA;
map<string,float> mapB;
...//其中T1,T2还可以各种指针类型或自定义类型
2.带参数的构造函数
string:
string(const char* s);//用字符串s初始化
string(int n,char c);//用n个字符c初始化
vector:
vector(beg,end);//构造函数将[beg,end)区间的元素拷贝给本身。
vector(n,elem);//构造函数将几个elem拷贝给本身。
int iArray[] = {0,1,2,3,4};
vector<int> vecIntA(iArray,iArray+5);
vector<int> vecIntB(vecIntA.begin(),vecIntA.end());
vector<int> vecIntB(vecIntA.begin(),vecIntA.begin()+3);
vector<int> vecIntC(3,9);
...
deque:
deque(beg,end);
deque(n,elem);
deque<int> deqIntA;
deqIntA.push_back(1);
...
deque<int> deqIntB(deqIntA.begin(),deqIntA.end());
deque<int> deqIntC(5,8);
...
list:
list(beg,end);
容器:各种各样的数据结构,存储数据:数组,联邦,栈,队列,树...
迭代器:提供了一种同一的方式去遍历容器中的数据
算法:处理数据,排序,查找,遍历...
容器算法迭代器关系
(1)#include <iostream>
#include <vector>
#include <algorithm>
容器:数据结构的封装,用来存储数据
数组:vector
vectot<int> v;
v.push_back(3);
v.push_back(2);
v.push_back(9);
v.push_back(10);//在尾部插入数据
(2)迭代器:给容器提供一种同一的遍历方式,相当于指针,指向容器中的某一个数据
begin();当前容器中第一个数据的迭代器
end();当前容器中最后一个元素的下一个元素的迭代器
vector<int>::iterator it;//iterator(迭代器类型) it(变量)
for(it = v.begin();it != v.end();it++)
{
cout << *it << endl;
}
/*while(it != v.end())
{
cout << *it << endl;
it++;
}*/
(3)算法:处理数据,排序,查找,反转,遍历...
统计:count
int num = count(v.begin(),v.end(),9);
cout << num << endl;
标准模板库--容器
1.默认构造
string:
string();//构造一个空的字符串
string s1;
vector:
vector<T> vecT;//一个存放T的...容器
vector<int> vecInt;//一个存放int的...容器
vector<float> vecFloat;//一个存放float的...容器
vectot<string> vecString;//一个存放string的...容器
...//尖括号内还可以设置指针类型或自定义类型
deque:
deque<T> deqT;
deque<int> deqInt;
deque<float> deqFloat;
deque<string> deqString;
...
stack:
stack<T> stkT;
stack<int> stkInt;
stack<float> stkFloat;
stack<string> stkString;
...
list:
list<T> lstT;
list<int> lstInt;
list<float> lstFloat;
list<string> lstString;
...
set/multiset:
set<T> setT;
set<int> setInt;
set<float> setFloat;
set<string> setString;
...
multiset<T> mulT;
multiset<int> mulInt;
multiset<float> mulFloat;
multiset<string> mulString;
...
map/multimap:
map<T1,T2> mapTT;
multimap<T1,T2> multimapTT;
map<int,char> mapA;
map<string,float> mapB;
...//其中T1,T2还可以各种指针类型或自定义类型
2.带参数的构造函数
string:
string(const char* s);//用字符串s初始化
string(int n,char c);//用n个字符c初始化
vector:
vector(beg,end);//构造函数将[beg,end)区间的元素拷贝给本身。
vector(n,elem);//构造函数将几个elem拷贝给本身。
int iArray[] = {0,1,2,3,4};
vector<int> vecIntA(iArray,iArray+5);
vector<int> vecIntB(vecIntA.begin(),vecIntA.end());
vector<int> vecIntB(vecIntA.begin(),vecIntA.begin()+3);
vector<int> vecIntC(3,9);
...
deque:
deque(beg,end);
deque(n,elem);
deque<int> deqIntA;
deqIntA.push_back(1);
...
deque<int> deqIntB(deqIntA.begin(),deqIntA.end());
deque<int> deqIntC(5,8);
...
list:
list(beg,end);