可以使用 std::vector 的迭代器进行遍历,然后使用指针比较判断是否相等,如果相等就使用 erase 方法将该元素从向量中移除。

示例代码:

#include <vector>
#include <nan.h>

// 定义一个 std::vector<Nan::Callback*>,并添加一些元素
std::vector<Nan::Callback*> callbacks;
callbacks.push_back(new Nan::Callback());
callbacks.push_back(new Nan::Callback());
callbacks.push_back(new Nan::Callback());

// 定义另一个 Nan::Callback*,需要判断是否与向量中的元素相等
Nan::Callback* f = new Nan::Callback();

// 遍历向量并判断是否相等,如果相等就移除该元素
for (auto it = callbacks.begin(); it != callbacks.end(); ++it) {
  if (*it == f) {
    callbacks.erase(it);
    break;
  }
}

// 输出向量中剩余的元素个数
std::cout << callbacks.size() << std::endl;

注意需要手动释放向量中的元素内存,避免内存泄漏。

Node.js C++ 使用迭代器移除 std::vector<Nan::Callback*> 中的特定元素

原文地址: https://www.cveoy.top/t/topic/opfl 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录