eri*_*oco 8 c++ element vector indexof
我从Java进入C++,并且有一个共同的设计情况,其中我有一个元素(非原始的)我想从std :: vector中删除.
在Java中,我写的是:arrayList.remove(arrayList.indexOf(myClassInstance));
在C++中,使用std :: vector,这样做的最佳/最佳/最干净的方法是什么?
我能想到的最好的事情是创建一个对我正在搜索的实例的引用,然后迭代向量直到找到该引用.实质上,比较向量中每个元素的内存地址与引用,直到我得到匹配.
我是在正确的轨道上吗?或者有更好的方法吗?(也许使用不同的std容器,到目前为止我只使用了std :: vector.)
#include <algorithm>
std::vector<Foo>::iterator it = std::find(vec.begin(), vec.end(), foo_2b_found);
if (it != vec.end()) vec.erase(it);
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
6925 次 |
| 最近记录: |