首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >怎样用C++比较两个向量?

怎样用C++比较两个向量?
EN

Stack Overflow用户
提问于 2018-02-08 05:50:08
回答 2查看 0关注 0票数 0

有什么函数可以比较两个字符串向量来返回不同(或相同)元素的数量吗?

EN

回答 2

Stack Overflow用户

发布于 2018-02-08 14:22:02

代码语言:txt
复制
std::sort(v1.begin(), v1.end());
std::sort(v2.begin(), v2.end());
std::vector<string> v3;
std::set_intersection(v1.begin(), v1.end(), v2.begin(), v2.end(), std::back_inserter(v3));

或者

代码语言:txt
复制
std::set<string> s1(v1.begin(), v1.end());
std::set<string> s2(v2.begin(), v2.end());
std::vector<string> v3;
std::set_intersection(s1.begin(), s1.end(), s2.begin(), s2.end(), std::back_inserter(v3));
票数 0
EN

Stack Overflow用户

发布于 2018-02-08 14:57:01

自己编写函数

代码语言:txt
复制
int compare(const vector<string>& left, const vector<string>& right) {
  auto leftIt = left.begin();
  auto rightIt = right.begin();
  auto diff = 0;
  while (leftIt != left.end() && rightIt != right.end()) {
    if (*leftIt != *rightIt) {
      diff++;
    }
    leftIt++;
    rightIt++;
  }

  // Account for different length vector instances
  if (0 == diff && (leftIt != left.end() || rightIt != right.end())) {
    diff = 1;
  }

  return diff;
}
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100003479

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档