我的问题非常类似于如何在std :: vector中找到一个项目?但是,我想更进一步,假设我正在搜索的项目在向量中出现了几次,我也希望在向量中获得它的位置.例如,我拥有的矢量是[ 1 3 4 3 7],我要搜索的项目是3.然后项目的位置是1和3.使用该std::find函数,我只能在向量中获得它的第一个位置.有任何想法吗?
只需将它粘在一个循环中,
auto i = std::find(v.begin(), v.end(), n);
std::vector<std::size_t> result;
while(i != v.end())
{
result.push_back(std::distance(v.begin(), i));
i = std::find(i + 1, v.end(), n);
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1256 次 |
| 最近记录: |