你如何做一个for循环作为一个条件?

时间:2014-11-25 23:45:10

标签: c++ vector

我必须通过向量循环得到结果作为条件,然后对该结果执行任务。

do{result}

我的数据是连续的入站json数据,它以7为一组的json属性被剥离。 我需要验证项目[2],然后将项目[3]发送到另一个矢量。

我的条件是

(for(int b = 2; b < buydat.size(); b+=7);
buydat[b] == "Buy")

我的行动是

do{
    pricedat.push_back(buydat[3]);
}

我的结果可以显示为

for(int d = 0; d < pricedat.size(); ++d){
    cout << pricedat[d] << " " << endl;
}

我的代码:

vector<std::string> buydat;
vector<std::string> pricedat;
for(int b = 2; b < buydat.size(); b+=7){
    do{
        pricedat.push_back(buydat[3]);
    }
    while(
        //(int b = 2; b < buydat.size(); b+=7;)
        buydat[b] == "Buy"
    );
}

我的错误:

terminate called after throwing an instance of 'std::bad_alloc'
  what():  std::bad_alloc
Aborted

如何将for循环结果作为条件? 通过数据循环7次 - &gt;验证项目[2] - &gt;将该系列中的项目[3]发送到矢量。

1 个答案:

答案 0 :(得分:0)

从评论中代码应该是:

vector<std::string> buydat;
vector<std::string> pricedat;
for(int b = 2; b < buydat.size(); b+=7){
    if ( buydat[b] == "Buy" ) { 
      pricedat.push_back(buydat[b+1]); 
    }
}

您的原始代码具有无限循环,并且还使用了错误的索引到buydat数组。