gpt4 book ai didi

c++ - 从另一个 vector 中搜索和查找一个 vector 中的元素的有效方法?

转载 作者:搜寻专家 更新时间:2023-10-31 00:27:18 25 4
gpt4 key购买 nike

我有两个 std::vector<long>秒。一个有 5 个元素,另一个有 100 个元素。我想将较小 vector 中的元素与较大 vector 中的元素进行比较,如果在较大 vector 中找不到某个元素,我想将其推回到较大 vector 中。我的代码在这里:

vector<long> Matvec, MatTempVec;
//assume Matvec has 5 elements and MatTempvec has 100 elements.

vector<long>::iterator It1;
for (auto it = Matvec.begin(); it != Matvec.end(); it++)
{
It1 = find(MatTempVec.begin(), MatTempVec.end(), it);
if (It1 != MatTempVec.end())
MatTempVec.push_back(*it);
}

除了我在上面所做的之外,建议我进行此搜索和查找的有效方法。

最佳答案

首先,我希望您只是假设性地提出问题,找到解决问题的“最佳算法”,或者,您正在谈论更大的数据集。

对于您拥有的数据量,不值得考虑这样的优化。

回答你的问题:

这实际上取决于您对 vector 有多少约束。如果您知道它们已排序,则可以通过对两个 vector 进行一次迭代来轻松解决这个问题。如果您知道它们是唯一的,您可能想使用集合。

如果你什么都不知道,你可能会想仍然使用集合,只是作为临时数据结构,以便更快地查找。由于位置的原因,这在现实世界中可能会或可能不会更快

关于c++ - 从另一个 vector 中搜索和查找一个 vector 中的元素的有效方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49644756/

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