我正在从Java转入C++,并且遇到了一个常见的设计问题,即我有一个元素(非原始类型),我想从std::vector中移除它。
在Java中,我会写类似以下代码: arrayList.remove(arrayList.indexOf(myClassInstance));
在C++中,对于std::vector,最佳/最优/最干净的方法是什么?
目前我所能想到的最好的方法是创建一个引用,指向我要查找的实例,然后迭代 vector 直到找到该引用。就是说,将每个元素的内存地址与引用进行比较,直到找到匹配项。
我这样做对吗?还是有更好的方法?(也许可以使用不同的std容器,但我只用过std::vector。)
在Java中,我会写类似以下代码: arrayList.remove(arrayList.indexOf(myClassInstance));
在C++中,对于std::vector,最佳/最优/最干净的方法是什么?
目前我所能想到的最好的方法是创建一个引用,指向我要查找的实例,然后迭代 vector 直到找到该引用。就是说,将每个元素的内存地址与引用进行比较,直到找到匹配项。
我这样做对吗?还是有更好的方法?(也许可以使用不同的std容器,但我只用过std::vector。)