gpt4 book ai didi

c++ - 收到有关 _Vector_const_iterator 无法转换为 _Vector_iterator 的错误

转载 作者:行者123 更新时间:2023-11-28 05:13:56 26 4
gpt4 key购买 nike

我目前是 C++ 编程的新手,我正在尝试制作一个数独求解器。但是,我在使用返回单元格候选列表(单元格可能的值列表)的方法时遇到了问题。候选列表是一个 vector 。这就是我目前尝试这样做的方式,但是它出现了一个错误:

 int Cell::getCandidateList(void) const
{
int i;
for (vector<int>::iterator j = m_candidateList.begin(); j < m_candidateList.end(); j++)
{
i = *j;
}
return i;
}

这是它在头文件中的声明方式:

 int getCandidateList(void) const; //create method to get candidate list

错误似乎在 m_candidateList.begin 上,错误说:

严重性代码描述项目文件行抑制状态错误(事件)不存在从“std::_Vector_const_iterator>>”到“std::_Vector_iterator>>”的合适的用户定义转换

最佳答案

嗯,首先,你不是从这个函数返回一个 vector ,你只是重复地重新分配一个整数值...... :-(

但至于您得到的错误:您试图强制您的迭代器成为非常量 vector 迭代器,通过它可以修改元素 - 这不是您想要的。尝试:

for (vector<int>::const_iterator j = m_candidateList.begin(); j < m_candidateList.end(); j++)

或:

for (auto j = m_candidateList.begin(); j < m_candidateList.end(); j++)

或者更好的是,使用 C++11 语法:

for (const auto& e : m_candidateList) { }

... 在这种情况下,在每次迭代中,e 是对 vector 中连续整数的常量引用。

关于c++ - 收到有关 _Vector_const_iterator 无法转换为 _Vector_iterator 的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43031720/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com