初学C++ associative container(关联容器)

pair类型:

#include <utility>   //需要的头文件
std::pair<int, std::string> iPair(1, "hello");  //构建变量
std::cout<<iPair.first<<' '<<iPair.second<<std::endl;  //输出参数

map类型:(需要包含<map>头文件)

map是键-值的集合。通常可以将map理解为关联数组。

键必须定义'<'操作符。

//map简单的使用,需要包含<map>头文件
typedef std::pair<std::string, int> etype;
std::map<std::string, int> imap;
//several way to add new element to map
imap.insert(etype("book", 1001)); //or use make_pair("book", 1001)
imap.insert(std::pair<std::string, int>("book", 1009));//键已存在,不做再添加操作
imap.insert(std::map<std::string, int>::value_type("table", 1000));
imap["abc"] = 1002;

std::map<std::string, int>::iterator itmap; for(itmap = imap.begin(); itmap != imap.end(); itmap++){  std::cout<<itmap->first<<' '<<itmap->second<<std::endl; } //result: abc 1002 book 1001 table 1000

set类型:(需包含<set>头文件)

set容器只是单纯的键的集合。它的大部分操作同map相似。

multimap和multiset:

在map和set中,一个键只能对应一个实例,而multimap和multiset类型则允许一个键对应多个实例。multimap和multiset类型的操作与map和set的操作相同,只是multimap不支持下标操作。

参考:

《C++ Primer》

你可能感兴趣的:(C++,c,String,table,iterator,pair)