C++标准模板库
STL:标准模板库(Standard Template Lib)主要介绍vector,list,map
vector向量:本质是对数组的封装
特点:读取是在常数时间内
push_pop把数据弹出
#include <iostream>
#include <stdlib.h>
#include <vector>
#include <list>
#include <map>
using namespace std;
/**
* 通过使用标准模板库,学习用法
*/
int main(void)
{
vector<int> vec;
int i;
vec.push_back(1);
vec.push_back(2);
vec.push_back(3);//在尾部加入数据
cout<<"向量的长度:"<<vec.size()<<endl;
for(i=0;i<vec.size();i++)
{
cout<<vec[i]<<endl;
}
vec.pop_back();
for(i=0;i<vec.size();i++)
{
cout<<vec[i]<<endl;
}
vec.pop_back();
vec.pop_back();
cout<<"向量的长度:"<<vec.size()<<endl;
system("pause");
return 0;
}
迭代器:iterator
通过迭代器可以访问标准模板库向量中每一个元素
迭代器的++操作是指向下一个元素
#include <iostream>
#include <stdlib.h>
#include <vector>
#include <list>
#include <map>
using namespace std;
/**
* 通过使用标准模板库,学习用法
*/
int main(void)
{
vector<int> vec;
vec.push_back(1);
vec.push_back(2);
vec.push_back(3);//在尾部加入数据
cout<<"向量的长度"<<vec.size()<<endl;
vector<int>::iterator itor=vec.begin();
cout<<*itor<<endl<<endl;
for(;itor!=vec.end();itor++)//vec.end()指向的是最后一个元素的下一个位置
{
cout<<*itor<<endl;
}
vec.pop_back();
vec.pop_back();
vec.pop_back();
cout<<"向量的长度"<<vec.size()<<endl;
system("pause");
return 0;
}
链表:List 插入数据速度快
链表有数据域和指针域,数据域存储数据,指针域表示指向的位置\
#include <iostream>
#include <stdlib.h>
#include <vector>
#include <list>
#include <map>
using namespace std;
/**
* 通过使用标准模板库,学习用法
*/
int main(void)
{
list<int> list1;
list1.push_back(1);
list1.push_back(2);
list1.push_back(3);
list<int>::iterator itor=list.begin();
for(itor=list.begin();itor!=list.end();itor++)
{
cout<<*itor<<endl;
}
system("pause");
return 0;
}
链表不能通过【】来访问,只能用iterator访问
map:映射
存储的数据成对出现
#include <iostream>
#include <stdlib.h>
#include <vector>
#include <list>
#include <map>
#include <string>
using namespace std;
/**
* 通过使用标准模板库,学习用法
*/
int main(void)
{
map<int,string> m;
pair<int,string> p1(1,"hello");
pair<int,string> p2(3,"world");
m.insert(p1);
m.insert(p2);
cout<<m[1]<<endl;
cout<<m[3]<<endl;
map<int,string>::iterator itor=m.begin();
for(itor=m.begin();itor!=m.end();itor++)
{
cout<<itor->first<<endl;
cout<<itor->second<<endl;
cout<<endl;
}
system("pause");
return 0;
}