大家好,我在一个成员函数中有以下代码
int tt = 6;
vector<set<int>>& temp = m_egressCandidatesByDestAndOtMode[tt];
set<int>& egressCandidateStops = temp.at(dest);
以及一个成员变量的声明如下:
map<int, vector<set<int>>> m_egressCandidatesByDestAndOtMode;
然而,在编译时我遇到了一个错误(使用Intel编译器11.0)
1>C:\projects\svn\bdk\Source\ZenithAssignment\src\Iteration\PtBranchAndBoundIterationOriginRunner.cpp(85): error: no operator "[]" matches these operands
1> operand types are: const std::map<int, std::vector<std::set<int, std::less<int>, std::allocator<int>>, std::allocator<std::set<int, std::less<int>, std::allocator<int>>>>, std::less<int>, std::allocator<std::pair<const int, std::vector<std::set<int, std::less<int>, std::allocator<int>>, std::allocator<std::set<int, std::less<int>, std::allocator<int>>>>>>> [ const int ]
1> vector<set<int>>& temp = m_egressCandidatesByDestAndOtMode[tt];
1> ^
我知道一定是什么愚蠢的小错误,但我看不出我做错了什么。
更新 我正在从一个常量成员函数中调用它,这就是为什么成员变量的类型是const,所以我认为以下代码应该修复它:int dest = 0, tt = 6;
const set<int>& egressCandidateStops = m_egressCandidatesByDestAndOtMode[tt].at(dest);
但是没有结果......仍然是相同的错误。