C++ iterator-」first和iterator-」second解析

我们都知道c++中map容器里包含键值和数值,在学习大佬代码时发现it.first和it.second用法,感觉特别难以理解
其实c++ 里面的map容器的迭代器里面 有个first 和 second,分别指向键值和数值
it.first就是在迭代器中获取map键值,it.second同理
举个例子:

map<string, string> m;
m["one"] = "sdfasf";
//迭代器类型需和容器保持一致
map<string, string>::iterator p = m.begin();
string a=p->first; // a值是 "one" 也可以写作p.first
string b=p->second; //b值是 "sdfasf",也可以写作p.second
  • 14
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
C++中的`std::map`是一种关联容器,它提供了一种键值对的映射关系。`std::map`的迭代器(iterator)用于遍历和访问`map`中的元素。 `std::map`的迭代器有以下几种类型: 1. `iterator`:用于遍历和修改`map`中的元素。 2. `const_iterator`:用于遍历和访问`map`中的元素,但不能修改元素的值。 3. `reverse_iterator`:用于反向遍历和修改`map`中的元素。 4. `const_reverse_iterator`:用于反向遍历和访问`map`中的元素,但不能修改元素的值。 使用迭代器可以通过以下方式进行遍历和访问`std::map`中的元素: ```cpp std::map<Key, Value> myMap; // 使用iterator遍历和修改map中的元素 for (std::map<Key, Value>::iterator it = myMap.begin(); it != myMap.end(); ++it) { // 访问键值对 Key key = it->first; Value value = it->second; // 修改值 it->second = newValue; } // 使用const_iterator遍历和访问map中的元素 for (std::map<Key, Value>::const_iterator it = myMap.begin(); it != myMap.end(); ++it) { // 访问键值对 Key key = it->first; Value value = it->second; } // 使用reverse_iterator反向遍历和修改map中的元素 for (std::map<Key, Value>::reverse_iterator it = myMap.rbegin(); it != myMap.rend(); ++it) { // 访问键值对 Key key = it->first; Value value = it->second; // 修改值 it->second = newValue; } // 使用const_reverse_iterator反向遍历和访问map中的元素 for (std::map<Key, Value>::const_reverse_iterator it = myMap.rbegin(); it != myMap.rend(); ++it) { // 访问键值对 Key key = it->first; Value value = it->second; } ```

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值