gpt4 book ai didi

c++ - 使用 std::find 检查 std::vector> 中的项目

转载 作者:行者123 更新时间:2023-11-30 04:02:47 26 4
gpt4 key购买 nike

我有以下对象

std::vector<std::vector<std::string>> vectorList;

然后我添加到这个使用

std::vector<std::string> vec_tmp;
vec_tmp.push_back(strDRG);
vec_tmp.push_back(strLab);
if (std::find(vectorList.begin(), vectorList.end(), vec_tmp) == vectorList.end())
vectorList.push_back(vec_tmp);

std::vector<std::string>包含 vectorList永远只是二维的,没有重复项。这很好用,但我现在只想检查是否 vectorList包含索引为零的项目等于当前 strDrg .在 C# 中,我什至不会考虑这一点,但使用 C++ 似乎并不直接。如何查找 vectorList 中是否存在 vector 其中 strDrg已经存在于 vectorList.at(i)[0]

注意:我可以使用 boost。

最佳答案

使用带有 lambda 的 find_if:

std::find_if(vectorList.begin(), vectorList.end(), 
[&strDrg](const std::vector<std::string>& v) { return v[0] == strDrg; });

您的内部元素似乎不需要vector 的全部功能。考虑使用:

std::vector<std::array<std::string, 2>>

相反。

关于c++ - 使用 std::find 检查 std::vector<std::vector<std::string>> 中的项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24891666/

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