Node.js C++ 使用迭代器移除 std::vector<Nan::Callback*> 中的特定元素
可以使用 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;
注意需要手动释放向量中的元素内存,避免内存泄漏。
原文地址: https://www.cveoy.top/t/topic/opfl 著作权归作者所有。请勿转载和采集!