C++常见STL容器基本用法

1.vector

#include 

//vector的创建
std::vector name;
std::vector name(size);
std::vector name(size, value);
std::vector name(other_vector);

//返回元素个数
vector.size();

//改变大小
vector.resize();

//使用下标访问,从0开始
vector[0];

//使用迭代器访问
vector::iterator it;
for(it = my_vector.begin(); it != my_vector.end(); it++)
{
    cout<<*it<

2.deque

与vector类似,支持从两端删除和增加元素

#include 

//创建
std::deque name;

//删除队列第一个元素
deque.pop_front();

//在队列开始插入元素a
deque.push_front(a);

3.list

双向链表,不支持随机访问

#include 

//list的创建
std::list name;
std::list name(size);
std::list name(size, value);
std::list name(other_list);

//返回元素个数
list.size();

//改变大小
list.resize();

//使用迭代器访问
list::iterator it;
for(it = my_list.begin(); it != my_list.end(); it++)
{
    cout<<*it<

4.set

在set中,元素的value标识它(value就是key),并且每个value必须是唯一的。set中的元素不能在容器中修改(元素总是const),但是可以从容器中插入或删除它们。

元素自动升序排序

#include 

//set的创建
std::set name;

//返回元素个数
set.size();

//改变大小
set.resize();

//使用迭代器访问
set::iterator it;
for(it = my_set.begin(); it != my_set.end(); it++)
{
    cout<<*it<

5.multiset

#include

除了关键字不是唯一外,与 set 相似

6.map

#include 

//创建map
std::map name;

//插入元素支持两种方式
my_map.insert(map::value_type(1, "test");
my_map[1] = "test";

//使用示例

#include 
#include 
#include 
using namespace std;
void main(){
	map< string, string > trans_map;
	typedef map< string, string >::value_type valType;
	trans_map.insert( valType( "001", "grateful" ));
	trans_map.insert( valType( "002", "them" ));
	trans_map.insert( valType( "003", "because" ));
	trans_map.insert( valType( "004", "no" ));
	trans_map.insert( valType( "005", "says" ));
	trans_map.insert( valType( "006", "thanks" ));
	trans_map.insert( valType( "007", "was" ));
    trans_map.insert( valType( "008", "suppose" ));	
	map< string,string >::iterator it;
	cout << "Here is our transformation map: \n\n";
	for(it=trans_map.begin();it!=trans_map.end();++it)
		cout<<"key: "<<(*it).first<<"\t"<<"value: " <<(*it).second<<"\n";
	cout<<"Find Key:005"<

7.multimap

#include

关键字不是唯一外,并且不支持使用 [ ] 插入元素,其他与 map 类似。

你可能感兴趣的:(C/C++,c++)