C ++在std向量中获取重复值的索引

时间:2016-05-19 13:06:52

标签: c++ c++11 vector

我想在std :: vector中获取重复值的索引。我正在做的是基本上收集std :: find在新向量中返回的索引,如下所示:

  auto beg = v.begin();
  const auto end = v.end();
  std::vector<size_t> val_positions;
  while (beg != end){
    auto iter = std::find(beg, end, val);
    if (iter != end){
      val_positions.push_back(iter - v.begin());
      beg = iter;
    }
    ++beg;
  }

这应该在线性时间内穿过矢量。有没有更有效的方法来做到这一点?矢量未排序。

0 个答案:

没有答案