我正在处理我的第一个代码,我又被一个新问题阻止了。
我在vectorA中有一堆值,我想执行以下while循环(在伪代码中):
“创建一个变量double SUM = 0和一个变量int count。
取向量的前值,加到SUM "
然后擦除向量中的前值
变量SUM应充当电容器:当SUM优于给定常数u时,
SUM 等于SUM - u
每次SUM > u时,另一个向量vectorB将存储count的值
现在我只有一个包含我所有值的 VectorA 并将列表导出到 .txt 文件中。
我想找到一种方法将vectorA的前值放在局部变量中以将其添加到SUM中,然后擦除这个前值。那可能吗?有没有更好的方法来做到这一点?
这是代码:
#include <iostream>
#include <fstream>
#include <vector>
#include <iterator>
#include <cstdlib>
#include <string>
#include <sstream>
using namespace std;
// constant values
float Da=0.1; //densities
float Db=0.5;
float Dc=1;
double Dd=0.333333;
int l = 10; //width & height
int h = 10;
float u = 10; // UNIT
int main ()
{
// vectors
vector <double> VectorA;
vector <double> vectorB;
int I = 0; //itération pour la somme des valeurs du vecteur
double SUM = 0; //somme des éléments du vecteurA
float a = 0;
float b = 0; // Local variables
while (a<l+1, b<h+1){
//values for given a & b
double DL = Da-Da*(b/h)+Dc*(b/h);
double DR = Db-Db*(b/h)+Dd*(b/h);
double D = DL-DL*(a/l)+DR*(a/l);
//print
//cout<<D<<endl;
//store
VectorA.push_back (D);
// next pixel/unit & next line
a = a+u;
if (a>l) {
a = 0;
b = b+u;
}
}
// export values to .txt file
ofstream output_file("./step1.txt");
ostream_iterator<double> output_iterator(output_file, "\n");
copy(VectorA.begin(), VectorA.end(), output_iterator);
}