我想在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;
}
这应该在线性时间内穿过矢量。有没有更有效的方法来做到这一点?矢量未排序。