Dra*_*ake 8 c++ comparison vector
我试图比较两个矢量对象,并返回一个包含出现在两个向量中的所有字符的向量.
如果不编写一些非常复杂的手动方法,我将如何解决这个问题,该方法将第一个向量中的每个字符与第二个向量中的每个字符进行比较,并使用if将其添加到第三个向量(如果它们匹配则将返回).
也许我缺乏对矢量的真实经验让我想象这将比实际更难,但我怀疑有一些我通过搜索无法找到的简单方法.
Mic*_*fik 10
我想你在找std::set_intersection.必须对源向量进行排序.如果您不关心输出向量的顺序,则可以始终在源向量的已排序副本上运行它.
而BTW,手动天真的方式并不是非常复杂.给定两个源向量s1和s2目标向量dest,您可以编写如下所示的内容:
for (std::vector<char>::iterator i = s1.begin(); i != s1.end(); ++i)
{
if (std::find(s2.begin(), s2.end(), *i) != s2.end())
{
dest.push_back(*i);
}
}
Run Code Online (Sandbox Code Playgroud)
find根据您选择的数据结构,您可以选择很多步骤.
| 归档时间: |
|
| 查看次数: |
6029 次 |
| 最近记录: |