要从boost::ptr_vector
中删除元素,您可以使用erase()
函数。以下是一个简单的示例,说明如何从boost::ptr_vector
中删除元素:
#include<boost/ptr_container/ptr_vector.hpp>
#include<iostream>
int main() {
boost::ptr_vector<int> ptr_vec;
// 向ptr_vector中添加元素
ptr_vec.push_back(new int(1));
ptr_vec.push_back(new int(2));
ptr_vec.push_back(new int(3));
// 打印ptr_vector的元素
std::cout << "Before erase:"<< std::endl;
for (const auto& elem : ptr_vec) {
std::cout<< elem << " ";
}
std::cout<< std::endl;
// 删除指定位置的元素
ptr_vec.erase(ptr_vec.begin() + 1);
// 打印ptr_vector的元素
std::cout << "After erase:"<< std::endl;
for (const auto& elem : ptr_vec) {
std::cout<< elem << " ";
}
std::cout<< std::endl;
return 0;
}
在这个示例中,我们首先向ptr_vector
中添加了三个整数元素。然后,我们使用erase()
函数删除了位于索引1的元素(即第二个元素)。最后,我们打印了删除元素之前和之后的ptr_vector
。
请注意,boost::ptr_vector
会自动管理其内部指针,因此在删除元素时,它会自动删除相应的内存。
领取专属 10元无门槛券
手把手带您无忧上云