C++中map和vector的区别

【个人学习记录】

map

  1. map是一个关联容器,简而言之就是一个序号,后面带一个值。
  2. 更适合需要进行添加删除查询等操作时来使用。
  3. insert和数组的方式访问、访问。
  4. 查询效率较高,适合需要按键进行查找和排序的场景。
	map <int, string> mapStudent;

以下代码为插入

	map<int, string> mapStudent;
	// /第一种函数插入pair
	mapStudent.insert(pair<int,string>(000,"studnet_zero "));
	mapStudent.insert(pair<int, string>(001, "studnet_bob "));

	// /第二种函数insert插入value_type数据
	mapStudent.insert(map<int, string>::value_type(002, "student_rose"));
	// /数组的方式来进行存储

	mapStudent[4] = "student_first";

	/*insert的插入存在相应的key则不可以再插入了,但是数组形式的则是会导致覆盖的情况*/

这里的begin指向map的第一个key,相当于数组的0 ,end则是指向最后一个key

	// /访问map
	for (auto it = mapStudent.begin(); it !=  mapStudent.end(); it++)
	{
		int key = it->first;
		string value_ = it->second; 
		cout << key << ":" << value_ << endl;

	}

	//map中查找元素 
	auto it = mapStudent.find(001);
	if (it != mapStudent.end())
	{
		string value_ = it->second;
		cout << "查找到元素 001:" << value_ << endl;
	}
	//判断元素是否存在 
	if (mapStudent.count(002) > 0)
	{
		cout << "存在" << endl;
	}
	else
	{
		cout << "不存在" << endl;
	}

vector

  1. 一个动态的数组,在运行的时候也可以改变大小。
  2. 按插入的顺序进行排序。
  3. 索引访问数组,支持头部和尾部插入数据。
  4. 适合用于需要频繁访问元素、插入和删除操作相对较少的场景。
vector<int> vec;

下面是对向量的插入访问操作

	//insert 这里就是说的只能在头尾插入数据	
	vec.insert(vec.begin(), 2);
	
	//emplace 
	vec.emplace(vec.begin(), 1);

	//末尾插入数据
	vec.push_back(10);
	vec.push_back(11);

	

	//访问元素 
	int value__ = vec[0];

	// 获取大小
	int size_ = vec.size();
	// 迭代访问元素
	for (const auto& element : vec) {
		cout << element << endl;
	}
	cout << "value__ :" << value__ << endl;
	cout << "size_ : " << size_ << endl;
	//向量的清空
	vec.clear();

	//vevtor 动态的数组 在运行时可以调整大小 

这里的插入和访问和map有一些不一样,多了集中方式,最后就不再多说。
下面是运行结果:

在这里插入图片描述

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值