返回矢量数组 c++ 时出现问题
Trouble returning a vector array c++
我对C++很陌生,如果这是一个简单的问题,我很抱歉!
我目前正在制作数独求解器。每个单元格都有一个候选列表,该列表可能是一组值。候选值通过删除同一行、列和块上的值来减少,直到最终候选列表中只有一个值,这将是单元格的新求解值。
我有这部分工作,但是另一种解决单元格的方法是通过"隐藏值"。通过将单元格的候选列表与单元格的行、列或块中的候选列表进行比较,可以找到隐藏值。如果当前单元格在其候选列表中有一个值,而该值在其他任何单元格中都找不到,那么该值必须是单元格的已解值。
我遇到的问题是返回单元格的候选列表,以便我可以将其与其他人一起返回。
我有一个单元类和一个单元组类。单元格组基本上是一行、一列或一列。每组包含 9 个单元格。
在单元组类中,我有以下方法:
int CellGroup::checkHiddenSinglesRow(Cell * cell) const
{
int candidateList[] = { cell->getCandidateList() }; //not returning correctly
int hiddenSingle = 0;
for (int i = 0; i < 9; ++i)
{
Cell *cells = m_cells[i];
bool found = cells->SearchCandidateList(value);
if (found == true) {
hiddenSingle = hiddenSingle + 1;
}
}
return hiddenSingle;
}
搜索候选方法基本上遍历单元格候选列表,如果它在单元格类中找到值,则返回 true:
bool Cell::SearchCandidateList(int value) {
bool found;
auto it = find(m_candidateList.begin(), m_candidateList.end(), value);
if (it != m_candidateList.end()) {
found = true;
}
else {
found = false;
}
return found;
}
这是我用来返回单元格类中当前单元格候选列表的方法:
int Cell::getCandidateList(void) const
{
for (auto i = m_candidateList.begin(); i != m_candidateList.end(); ++i) {
int j;
j = *i;
return j;
}
}
getCandidate List 返回 1,这可能是候选列表中的第一个值。 将列表作为数组返回可能很有用,这样我就可以比较其中的值,但是我不确定如何实现这一点。
任何帮助将不胜感激!
谢谢露西
你可以像这样返回向量:
std::vector<int> Cell::getCandidateList() const
{
return m_candidateList;
}
相关文章:
- 警告处理为错误这里有什么问题
- 最小硬币更换问题(自上而下方法)
- 为"adjacent"变量赋值时出现问题
- 我的神经网络不起作用 [XOR 问题]
- 在Ubuntu 16.04上安装Cilk时出现问题
- C++我的数学有什么问题,为什么我的代码不能正确循环
- 编译包含字符串的代码时遇到问题
- Project Euler问题4的错误解决方案
- 问题:什么是QAbstractItemView::NoEditTriggers的反面
- 在编译C++代码(具有dlib和opencv)到WASM时面临问题
- 在进程中对同一管道进行读取和写入时C++管道出现问题
- 静态数据成员的问题-修复链接错误会导致编译器错误
- C++ 雷神库 - 使用资源加载器类时出现问题(不命名类型)
- 一个关于在C++中重载布尔运算符的问题
- 首要问题的答案让值班员搞错了
- setlocale的C++土耳其字符串问题
- 如何重构类层次结构以避免菱形问题
- 基于boost的程序的静态链接——zlib问题
- C++格式化输出问题
- 使用mongocxx驱动程序时包含头文件问题