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》