C++ Primer 第九,十章 标准IO库

①vector的用法


②string的用法:


③pair的用法:

    pair<T1 , T2>  P 常用来定义map使用的变量

④map的用法:

    1.map中三种值类型:key_value键值first,mapped_type值second ,value_type---pair<>。

    2.初始化map: map<T1,T2> m;

    3.插入insert:插入的值是 pair , map<T1,T2>::value_type , make_pair类型。

                           返回值是: pair<map<string,int>::iterator , bool>

    4.查找:find返回迭代器,count返回数目:0或1。

    5.删除:erase(k)返回删除个数。erase(p) 和 erase(begin,end)返回 void。

     

⑤set的用法:

    1.set是单纯的键(key)的集合。

    2.set的很多操作和map一样,insert,count,find,erase

    3.用vector初始化set相同元素被省略


⑥multimap 和 multiset的用法:

#include <iostream>
#include <map>
#include <string>
#include <set>
#include <vector>
using namespace std;

int main()
{
	//1.定义pair类型
	pair<string , int> p("Anna",1);
	
	map<string,int> m;
	
	typedef map<string,int>::value_type mapValue; 

	m["Kurumi"] = 3;              //通过下标插入值
	m.insert(p);                  //插入一个pair类型值
	m.insert(mapValue("Misaka",1));
	m.insert(mapValue("Hina",2));
	m.insert(make_pair("Asuna",4)); //make_pair插入值

	//insert返回值类型 pair<map<string,int>::iterator , bool>
	pair<map<string,int>::iterator , bool> bRet = m.insert(make_pair("Hina",1));

	if (bRet.second == false)
	{
		cout << "插入失败" <<endl;
	}
	else
	{
		cout << "插入成功" <<endl;
	}

	cout <<"-----------统计某个值出现次数,返回值 0 或 1 -----------------"<<endl;
	cout << m.count("Hina") <<endl;//map中不是0就是1

	cout <<"-----------------------map中所有变量--------------------------"<<endl;
	for (map<string,int>::iterator it = m.begin(); it != m.end() ; ++it)
	{
		cout << "<"<<it->first << " , " <<it->second << ">" <<endl;
	}

	cout <<"------------------find-Hina之后的变量------------------------"<<endl;
	map<string,int>::iterator itFind = m.find("Hina");
	for (map<string,int>::iterator it = itFind ; it != m.end() ; ++it)
	{
		cout << " < "<<it->first << " , " <<it->second << " > " <<endl;
	}

	cout <<"---------erase的用法,删除变量成功返回1,失败返回0------------"<<endl;
	cout << m.erase("Hina") <<endl;

	cout <<"------------用vector初始化 set相同的元素会被去掉---------------"<<endl;
	vector<int> vecInt;
	set<int> setInt;
	for (int i = 0 ; i != 10 ; ++i)
	{
		vecInt.push_back(i);
		vecInt.push_back(i);
	}

	setInt.insert(vecInt.begin(),vecInt.end());
	for (set<int>::iterator it = setInt.begin() ; it != setInt.end() ; ++it)
	{
		cout << *it <<" ";
	}

	return 0;
}



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值