在此代码段中,
void Graph::dfs(int s) const {
m_Marked[s] = true;
// ...
}
其中std::vector<bool> m_Marked;
我从编译器看到,
../Algorithms/graph.cpp:54:17: error: no viable overloaded '='
m_Marked[s] = true;
~~~~~~~~~~~ ^ ~~~~
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/__bit_reference:155:28: note: candidate function not viable: no known conversion from 'bool' to 'const std::__1::__bit_const_reference<std::__1::vector<bool, std::__1::allocator<bool> > >' for 1st argument
__bit_const_reference& operator=(const __bit_const_reference& __x);
绝对不知道他的问题是什么,这看起来很基本?
TIA
答案 0 :(得分:5)
您将函数定义为const,因此您承诺不会更改任何内容。赋值操作正在改变某些东西,违反了这个承诺。