c++ - C 多维 vector ;线性搜索

标签 c++ search vector multidimensional-array

我正在尝试创建一个函数,用于在多维 vector 中搜索我想要的项目。但是发生的事情是搜索只比较 vector 中的第一项 -> vectorName[0][0] 而不是以下任何一项,即 vectorName[0][1] 等等。我该如何修复此函数,以便它搜索多维 vector 中的所有项目并将其与键进行比较?

        void linearSearch(vector<vector<string>> &vectorName, string key)
        {
            for (int i =0; i < vectorName.size(); i++)
            {
                for (int k = 0; k<vectorName.size(); k++)
                {
                    if (key == vectorName[i][k])
                    {
                        cout << "Found " << vectorName[i][k] << " at "
                             << i << ","<< k <<endl;           
                    }     
            }
        }

最佳答案

只是猜测,也许 vectorName 不是正方形,所以更改:

for (int k = 0; k<vectorName.size(); k++)

for (int k = 0; k<vectorName[i].size(); k++)
                            ^^^

关于c++ - C 多维 vector ;线性搜索,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18283040/

相关文章:

c++ - 为什么 MSVC 在覆盖具有正确签名的函数时会产生 C3668 错误?

c++ - TBB concurrent_queue 使用示例

c++ - 如何获得真正的 16 位值?

search - SOLR-如何将构面计数限制为结果集中返回的行

c++ - 用 C++ 将数据写入文件 - 最有效的方式?

c++ - 从文本文件读取行到 std::vector<string> 的最有效方法

c++ - 使用仅安装了 Visual Studio 2017 的系统构建 Visual Studio 2010 C++ 项目

c - 2-Opt 本地搜索实现

mysql - 如何搜索忽略单词之间的空格?

algorithm - 针对凸多面体形状类型转换胶囊