您的位置:首页 > 编程语言 > C语言/C++

C++学习-STL容器

2017-09-11 20:16 393 查看

STL中的vector:

/*
vector --->向量  ---->线性容器
用标准模板,记得加上相应的头文件
*/
#include <iostream>
#include <vector>
using namespace std;
int main()
{
//向量容器
vector <int> v0;
//初始化值
vector <int> v1{ 1,2,3,4,5,9,6 }; //设置向量容量
//初始化
v1[0] = 8;
v1[1] = 8;
v1[2] = 8;
//声明迭代器 标准他属于那个模板
vector<int>::iterator  v1_Iter;
for (v1_Iter = v1.begin(); v1_Iter < v1.end(); v1_Iter++)
{
cout <<" "<< *v1_Iter;
}
cout << endl;
//逆序迭代器
vector<int>::reverse_iterator  v1_rIter;
for (v1_rIter = v1.rbegin(); v1_rIter < v1.rend(); v1_rIter++)
{
cout << " " << *v1_rIter;
}

//新标准
cout << endl;

for (int &i : v1)
{
cout << " " << i;
}
system("pause");
return 0;
}

STL中的stack:

#include <iostream>
#include<stack>
#include <string>
using namespace std;
int main()
{
//stack 先进后出
stack<string> mystack;
mystack.push("饭");
mystack.push("要吃");
mystack.push("我");
cout << mystack.size();
cout << endl;
while (!mystack.empty())
{
cout << mystack.top();
mystack.pop();
}
cout << endl;

system("pause");

return 0;
}

STL中的queue:

#include <iostream>
#include<queue>
#include <list>
#include <string>
using namespace std;
int main()
{
queue<string> qs;

//嵌套
list<string> Ls;
Ls.push_back("12123");
queue<list<string>> QS;
QS.push(Ls);

qs.push("我");
qs.push("想");
qs.push("你");
while (!qs.empty())
{
cout << qs.front();
qs.pop();
}
cout << endl;
system("pause");
return 0;
}

STL中的list:

#include<iostream>
#include <list>	//俗称  列表
using namespace std;
int main()
{
list<int>  L1;

L1.push_back(3);
L1.push_back(2);
L1.push_back(1);
for (int &v : L1)
{
cout << " " << v;
}
cout << endl;
L1.push_front(4);

list<int>::iterator  L1_Iter;
//-----> p->next!= NULL
for (L1_Iter = L1.begin(); L1_Iter!=L1.end(); L1_Iter++)
{
cout << " " << *L1_Iter;
}
system("pause"); //防止闪屏
return 0;
}

STL中的set:

#include <iostream>
#include<set>
#include <string>
using namespace std;
int main()
{
/*set <int> si;*/
multiset <int> si;
//没有重复出现的

si.insert(1);
si.insert(2);
si.insert(2);
si.insert(4);
for (set<int>::const_iterator it = si.begin(); it != si.end(); it++)
{
cout << " " << *it;
}
cout << endl;

set<string> bad_ip;
bad_ip.insert("192.168.1.1");
bad_ip.insert("192.168.1.10");
string my_ip = "192.168.1.1";
//count使用
if (bad_ip.count(my_ip) != 0)
{
cout << "该ip属于黑名单" << endl;
}

system("pause");
return 0;
}

STL中的map:

#include<iostream>
#include <string>
#include <map>
using namespace std;
int main()
{

//初始化方式
//----->字典
//first:键   second:值

//map<string,int> msi
//pair:数对类型
//结构体+类,显式实例化
//msi.insert(pair<string, int>("张飞", 97));
////make_pair() 函数隐式
//msi.insert(make_pair("赵云", 78));
//下标的方式进行访问
//msi["a"] = 100;
//msi["A"] = 300;
//msi["f"] = 40;
//msi["d"] = 500;
//msi["e"] = 1000;

//map :1.注意:键唯一
//	   2.有序,排序 大写大于小写,其他按字母  "A">"a"
//typedef map<string, int>::iterator IT;
//for (IT it = msi.begin(); it != msi.end(); ++it)
//{
//	cout << "名字:" << it->first << "\t战力:" << it->second<<endl;
//}
multimap<string, int> msi;
msi.insert(make_pair("ZF", 95));
msi.insert(make_pair("ZL", 95));
typedef multimap<string, int>::iterator IT;
for (IT it = msi.begin(); it != msi.end(); ++it)
{
cout << "名字:" << it->first << "\t战力:" << it->second<<endl;
}
system("pause");
return 0;
}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  C++ C++学习 STL vector stack