小编Rui*_*iQi的帖子

擦除矢量中的元素使用for循环

如何使用for循环通过索引从矢量中擦除元素?我得到一个超出范围错误的向量.我在下面有一个示例代码.

 vector<int> to_erase = {0, 1, 2}; 
 vector<int> data     = {3, 3, 3, 3};

 for(int i = 0; i < to_erase.size(); i++) {

    data.erase(data.begin() + to_erase[i]);
 }
Run Code Online (Sandbox Code Playgroud)

我认为这是因为我的向量的大小在每次迭代时都会减少,因此它无法访问索引2.

c++ for-loop vector erase segmentation-fault

4
推荐指数
1
解决办法
1324
查看次数

结构中的功能?C++

我理解基本如何struct在C++中工作,如下例所示:

struct Options 
{
   int num_particles;
   bool use_lbp;
   string infile;
   string outfile;
};
Run Code Online (Sandbox Code Playgroud)

但是,我不明白以下内容,在声明中还有一个附加部分.目的是Options():...什么?

struct Options 
{
   Options()
      :num_particles(NUM_PARTICLES),
       use_lbp(false),
       infile(),
       outfile()
   {}

   int num_particles;
   bool use_lbp;
   string infile;
   string outfile;
};
Run Code Online (Sandbox Code Playgroud)

这与下面的代码中的内容类似吗?

struct State_
{
   State_( State pp ) : p( pp ) { }
   operator State() { return p; }
   State p;
};
Run Code Online (Sandbox Code Playgroud)

c++ structure

-6
推荐指数
1
解决办法
126
查看次数

标签 统计

c++ ×2

erase ×1

for-loop ×1

segmentation-fault ×1

structure ×1

vector ×1