如何通过查找迭代器结果分配给一组对的元素
how to assign to element of set of pairs through find iterator result
>我有一组对,我想更改我想先找到的某个对的第二个字段:
#include <iostream>
#include <utility>
#include <set>
int main(){
auto p=std::make_pair(2,3);
std::set<std::pair<int,int>> s{p};
auto it=s.find(p);
it->second=5; // compilation error
if(it!=s.end()) std::cout << it->second << 'n';
}
上面的代码编译失败,因为它抱怨无法将 find 的迭代器结果分配给。但是,我不明白为什么它是一个 const 迭代器。
上面有什么问题,我如何分配给 find 的迭代器结果指向的对?
这是因为 set 元素不应该是可变的,因为用于在逻辑上实现它的红黑树阻止了我们搞砸实际节点。即使没有实现细节,set 元素也不应该是可变的(如上面的评论之一所指出的(,否则我们可以{2,3}
更改为{2,2}
,这将是荒谬的。
相关文章:
- 经过最后一个数组元素末尾的指针是否应该等于超过整个数组末尾的指针?
- 如何根据对的第二个元素对 STL c++ 中的一组对进行排序?
- 如何通过查找迭代器结果分配给一组对的元素
- 在删除之前更新一组元素指针中的元素
- 无法在STL中打印一组矢量的元素
- 迭代一组和擦除元素
- 最长的子序列,其元素构成一组递增的整数
- 如何查找一组类型对是否包含一个元素作为第二个成员
- 将大于k的数组元素导入到另一个数组C 中
- 如何访问一组对元素的图
- 如何在对一组中的一对之间找到一个元素
- 如何创建一组UI元素,您可以迭代
- 组合两个数组元素或将一个数组元素分发到另一个数组元素
- 一组结构缺少元素
- 基于权重在N个桶之间分配一组元素
- 按一对数组元素的和对向量进行排序
- 对于一组不断添加和删除的元素,我应该使用哪个容器
- 查找一组元素的位置
- 通过索引删除一组元素
- 将一组元素分解成最少数量的回文