安全地从boost :: interprocess :: vector中删除

时间:2013-03-14 20:05:27

标签: c++ boost vector boost-interprocess

类型:

namespace bipc = boost::interprocess;

typedef bipc::allocator<char, bipc::managed_shared_memory::segment_manager> char_allocator; 
typedef bipc::basic_string<char, std::char_traits<char>, char_allocator> shmem_string; 

typedef bipc::allocator<shmem_string, bipc::managed_shared_memory::segment_manager> string_allocator;
typedef bipc::vector<shmem_string, string_allocator> shmem_vector;

当前用法:

le_buffer = shmem.construct<shmem_vector>("le_buffer")(some_string_allocator);
le_buffer->push_back(some_shmem_string);

故障:

现在我需要迭代这个向量并删除所有解析为int的字符串相等123。

int size = le_buffer->size();
for(int i=0; i<size; i++){
   int tmp = parse(le_buffer->at(i));
   if(tmp == 123) {
    // ???
   }
}

如何从le_buffer安全删除这些字符串?

0 个答案:

没有答案