C++ STL Map、迭代器

一 、C++ STL Map

#include<iostream>
#include<map>
#include<string>
using namespace std;
int my_map()
{
	map<int, string> infor;
	// 插入
	infor[0] = "aaa";
	infor.insert(pair<int, string>(1, "bbb")); //pair就是一个键值对,在这里构造一个pair对象,再插入
	// 在指定位置插入
	map<int, string>::iterator it=infor.begin();
	infor.insert(it, pair<int, string>(1, "bbb"));
	return 0;
}

详细介绍

#include<iostream>
#include<map>
#include<string>
using namespace std;
int main()
{
	map<int, string> infor;

	// 插入
	infor[0] = "aaa";
	infor.insert(pair<int, string>(1, "bbb")); //pair就是一个键值对,在这里构造一个pair对象,再插入
	// 在指定位置插入
	map<int, string>::iterator it = infor.begin();
	infor.insert(it, pair<int, string>(2, "ccc"));
	//列表形式插入
	infor.insert({ {3,"ddd"},{4,"eee"} });

	//取值 其中3为key值
	infor.at(3);
	infor[3];

	//容量查询
	cout << infor.empty() << endl;
	cout << infor.size() << endl;
	//查询关键字为key的元素的个数,在map里结果非0即1
	cout << infor.count(2) << ' ' << infor.count(6) << endl;

	//删除
	it++;
	infor.erase(it); // 删除迭代器指向位置的键值对,并返回一个指向下一元素的迭代器
	infor.erase(4); //根据key删除, 返回删除的元素数量,在map里结果非0即1
	// infor.clear() 清空map

	//查找 关键字查询,找到则返回指向该关键字的迭代器,否则返回指向end的迭代器
	it = infor.find(1);
	if (it != infor.end())
		infor.erase(it);

	//遍历
	for (it = infor.begin(); it != infor.end(); it++)
		cout << it->first<<':'<<it->second << endl;

	system("pause");
	return 0;
}

二 、C++ STL 迭代器

#include<iostream>
#include<vector>
using namespace std;
int iterator()
{
	vector<int> vi;
	vi.push_back(1);
	vi.push_back(2);
	vi.push_back(3);
	vector<int> ::iterator iter = vi.begin();
	for (; iter != vi.end(); iter++)
		cout << *iter<<endl;
	system("pause");
	return 0;
}

猜你喜欢

转载自blog.csdn.net/weixin_43868436/article/details/89677191