gpt4 book ai didi

c++ - c++ 中 std::vector 的 ArrayList 样式 indexOf?

转载 作者:可可西里 更新时间:2023-11-01 17:35:57 26 4
gpt4 key购买 nike

我从 Java 进入 C++,并且有一个常见的设计情况,在这种情况下我有一个元素(非基本元素)我想从 std::vector 中删除。

在 Java 中,我会这样写:arrayList.remove(arrayList.indexOf(myClassInstance));

在 C++ 中,使用 std::vector,最好/最高效/最干净的方法是什么?

我能想到的最好的办法是创建一个对我正在搜索的实例的引用,然后遍历 vector 直到找到该引用。本质上,将 vector 中每个元素的内存地址与引用进行比较,直到找到匹配项。

我在正确的轨道上吗?或者有更好的方法吗? (也许使用了不同的标准容器,到目前为止我只使用了 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);

关于c++ - c++ 中 std::vector 的 ArrayList 样式 indexOf?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4241198/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com