对值读取错误C++
Pair Value Reading Errors C++
我收到编译器错误:
错误:在"list.std::map::operator[]"中请求成员"first", std::less, std::分配器>>>(* &0.0)).std::p air::second',即 非类类型 'int' int closestX = list[0].second.first;
尝试从名为 list defined 并使用迭代器的映射读取数据时:
map<double, pair<int, int>> list;
map<double, pair<int, int>>::iterator it = list.begin();
列表中的成员插入:
list.insert(it, pair<double, pair<int, int>>(findDistance(posr,posc,j, i), pair<int, int>(j, i)));
我正在使用以下命令从地图中读取值:
int closestX = list[0].second.first;
int closestY = list[0].second.second;
该错误似乎表明list[0].second.first
的返回类型是非类类型 int,但该返回类型与 closestX 的值类型完全匹配,我现在碰壁了。假设 list[0] 已初始化并保存有效值。
list[0]
已经是值类型pair<int, int>
,而不是迭代器类型。所以你可以写
int closestX = list[0].first;
int closestY = list[0].second;
该错误似乎表明 list[0].second.first 的返回类型是非类类型 int
不,错误消息告诉list[0].second
不是类类型,因此您无法对其执行.first
。
请注意,std::map::operator[]
将返回mapped_type
。
返回对映射到等效键的值的引用。
list => map<double, pair<int, int>>
list[0] => pair<int, int>
list[0].second => int
list[0].second.first => failed
相关文章:
- 警告处理为错误这里有什么问题
- "error: no matching function for call to"构造函数错误
- boost::进程间消息队列引发错误
- C++,OpenCV,尝试显示图像时"OpenCV(4.3.0) Error: Assertion failed (size.width>0 && size.height>0)"此错误
- 有关插入适配器的错误。[错误]请求从 'back_insert_iterator<vector<>>' 类型转换为非标量类型
- QT在错误的班级中寻找空位
- vector.resize()中的分配错误
- 代码在main()中运行,但在函数中出现错误
- 释放错误后堆使用
- (C++)分析树以计算返回错误值的简单算术表达式
- Project Euler问题4的错误解决方案
- 我的字符计数代码计算错误.为什么
- 从"int*"强制转换为"unsigned int"会丢失精度错误
- 尝试导入pybind-opencv模块时出现libgtk错误
- CMake项目Boost库错误:Boost/config/compiler/gcc.hpp:165:10:致命错误:cs
- 在某些循环内使用vector.push_back时出现分段错误
- MSVC多行宏编译器错误
- C++像素抓取器的RGB值错误
- SMBIOS Enum取值.文档错误
- 由于试图取不在内存中的值而导致的分段错误