C++标准模板库

STL:标准模板库(Standard Template Lib)主要介绍vector,list,map

vector向量:本质是对数组的封装

特点:读取是在常数时间内

C++标准模板库

C++标准模板库

C++标准模板库

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;
}

C++标准模板库

迭代器:iterator

通过迭代器可以访问标准模板库向量中每一个元素

C++标准模板库

迭代器的++操作是指向下一个元素

#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;
}

C++标准模板库

 

 

链表: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:映射

C++标准模板库

存储的数据成对出现 

C++标准模板库

C++标准模板库

#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;
}

C++标准模板库