STl:标准模板库
STL(vector)
序列式容器:vector
//STL-vector
//vector容器包含的成员函数链接网站:http://www.cplusplus.com/reference/vector/vector/
#include <iostream>
#include <vector>
using namespace std;
int main()
{
//创建存储double数据类型的一个vector容器v1
vector<double>v1;
//创建容器v2同时进行初始化元素个数
vector<int>v2{ 34,65,78,90,28,56,98,77,81,19 };
//创建vector容器,指定个数为50
vector<int>v3(50);
//创建vector容器,拥有10个字符为'A'
vector<char>v4(10, 'A');
//将v4赋给v5
vector<char>v5(v4);
int a[] = { 10,20,30 };
vector<int>v6(a, a + 2);//v6会保存10,20
vector<int>v7{ 1,2,3,4,5,6,7,8,9,10 };
vector<int>v8(begin(v7), begin(v7) + 3);//v8保存1,2,3
return 0;
}
#include <iostream>
#include <vector>
using namespace std;
int main()
{
//定义一个空的vector容器
vector<char>vi;
//向容器添加STLTEMPLATE
vi.push_back('S');
vi.push_back('T');
vi.push_back('L');
vi.push_back('T');
vi.push_back('E');
vi.push_back('M');
vi.push_back('P');
vi.push_back('L');
vi.push_back('A');
vi.push_back('T');
vi.push_back('E');
//输出容器vi元素的个数
cout << "元素个数为:" << vi.size() << endl;
//遍历容器
cout << "\n输出vi容器数据元素:\n";
for (auto i = vi.begin(); i < vi.end(); i++)
cout << " " << *i << " ";
cout << endl;
//--------------------------------------------------
//插入数据元素到头部
vi.insert(vi.begin(), 'V');
//遍历容器
cout << "\n输出vi容器数据元素:\n";
for (auto i = vi.begin(); i < vi.end(); i++)
cout << " " << *i << " ";
cout << endl;
//---------------------------------------------------
//插入数据元素到头部
vi.insert(vi.end(), 'I');
//遍历容器
cout << "\n输出vi容器数据元素:\n";
for (auto i = vi.begin(); i < vi.end(); i++)
cout << " " << *i << " ";
cout << endl;
cout << "输出vi容器首个元素为:" << vi.at(0) << endl << endl;
return 0;
}
STL(deque)
双端队列容器
//STL-deque
//deque容器可利用的成员函数链接网站:http://en.cppreference.com/w/cpp/container/deque
#include <iostream>
#include <deque>
using namespace std;
int main()
{
//创建deque容器,没有任何数据元素
deque<int>d1;
//创建deque容器且有50个元素
deque<int>d2(50);
//创建一个具有9个元素的deque容器,且初始化值
deque<int>d3(9,888);
//容器之间可以赋值
deque<int>d4(10);
deque<int>d5(d4);
return 0;
}
#include <iostream>
#include <deque>
using namespace std;
int main()
{
//定义一个空的容器
deque<int>d1;
//向容器尾部插入数字
d1.push_back(10);
d1.push_back(20);
d1.push_back(30);
d1.push_back(40);
d1.push_back(50);
d1.push_back(60);
d1.push_back(70);
d1.push_back(80);
d1.push_back(90);
d1.push_back(100);
//输出容器d1元素的个数
cout << "输出d1容器元素个数为:" << d1.size() << endl;
//向d1容器尾部添加数据元素值
d1.push_back(888);
//输出容器所有元素值
cout << "\n输出d1容器所有元素值:" << endl;
for (auto i = d1.begin(); i < d1.end(); i++)
cout << " " << *i << " ";
cout << endl;
//删除容器头部的数据元素值
d1.pop_front();
//输出容器所有元素值
cout << "输出d1容器所有元素值:\n";
for (auto i = d1.begin(); i < d1.end(); i++)
cout << " " << *i << " ";
cout << endl;
return 0;
}
STL(stack)
容器适配器—封装了序列容器的类模板
只能访问stack顶部的元素,只有在移除stack顶部的元素后,才能访问下方的元素
//STL-stack
//stack容器适配器可利用的成员函数链接网站:https://cplusplus.com/reference/stack/stack/
#include <iostream>
#include <stack>
#include<list>
using namespace std;
int main()
{
//创建stack容器适配器
list<int>ls{ 11,22,33,44,55,66,77,88,99 };
stack<int, list<int>> mystack(ls);
//查询mystack存储元素的个数
cout << "mystack栈容器元素个数为:" << mystack.size() << endl;
//输出栈容器数据元素的值
cout << "\n\n输出栈容器元素的值:" << endl;
while (!mystack.empty())//没有元素返回真,否则返回假
{
cout << mystack.top() << " ";
//将栈顶元素弹出去
mystack.pop();
}
cout << endl;
return 0;
}