C++模板库--容器

标准模板库
     容器:各种各样的数据结构,存储数据:数组,联邦,栈,队列,树...
     迭代器:提供了一种同一的方式去遍历容器中的数据
     算法:处理数据,排序,查找,遍历...


容器算法迭代器关系
   (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);
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值