C++ 遍历 3D 数组'no match for operator='
C++ Iterate through 3d array 'no match for operator='
我已经用谷歌搜索过了,常见的解决方案似乎是,迭代器必须是常量。但我仍然收到此错误。这是我的代码:
std::vector<std::vector<std::vector<std::string> > >::const_iterator itc;
std::vector<std::vector<std::string> >::const_iterator itb;
std::vector<std::string>::const_iterator ita;
for (ita = metadata.getTestVektor().begin(); ita != metadata.getTestVektor().end(); ++ita)
{
for (itb = ita->begin(); itb != ita->end(); ++itb)
{
for (itc = itb->begin(); itc != itb->end(); ++itc)
{
}
}
}
metadata.getTestVektor() 返回一个 3d vektor:
std::vector<std::vector<std::vector<std::string>>> testvektor;
日志:
/home/MetaDataCreator.cpp:20: error: no match for 'operator=' (operand types are 'std::vector<std::basic_string<char> >::const_iterator {aka __gnu_cxx::__normal_iterator<const std::basic_string<char>*, std::vector<std::basic_string<char> > >}' and 'std::vector<std::vector<std::vector<std::basic_string<char> > > >::iterator {aka __gnu_cxx::__normal_iterator<std::vector<std::vector<std::basic_string<char> > >*, std::vector<std::vector<std::vector<std::basic_string<char> > > > >}')
for (ita = metadata.getTestVektor().begin(); ita != metadata.getTestVektor().end(); ++ita)
^
^ 指向"="符号
似乎你已经ita
了,itc
混淆了,ita
具有最内层迭代器的类型。
但也要考虑 Joachim 所说的话 - 如果getTestVektor()
按值返回,则在两个不同的向量上调用 begin()
和 end()
。不好!
- 错误消息:使用"string* +="后"no match for 'operator+='"
- 在 Eclipse: "error: no match for 'operator='" 中获取错误消息
- 如何'Invalid conversion'和'no match for operator'更正这些 c++ 错误
- 为什么当我没有变量或其他任何命名的东西时"no match for 'operator==' "错误?
- 编译时二叉搜索树错误的反向迭代器表示"no matching function call for operator=()"
- 为什么我收到以下错误:"no match for 'operator=='"?(带模板的嵌套类)
- 在命名空间内的类中使用带有运算符重载的字符串流时"no match for ‘operator>>’"
- 如何修复C++中的"no match for operator+"?
- 运算符重载错误"no match for operator error"
- "No match for operator []"
- 如果我没有重载,为什么我会"no match for ‘operator=’"自定义类?
- 为什么编译器显示错误"no match for 'operator[]' (operand types are 'carti' and 'int')"
- 对简单的帐户检查程序有问题?程序返回编译错误,指出"no match for 'operator||' unsure of how to fix?"
- "no match for 'operator >>'"代码中是什么意思?
- "no match for ‘operator>>’ in ‘inputFile >> buffer"错误?
- 如何修复" no match for 'operator<<' in 'std::cout"错误?
- 简单迭代器差异的"No match for operator-"错误
- 使用 std::string 时"error: no match for ‘operator<<"
- 访问基于遗传算法的PNRG中的数组? " no match for operator[] "
- "No match for operator+"