【发布时间】:2013-07-10 12:54:51
【问题描述】:
我正在处理我的第一个代码,但我又被一个新问题阻止了。
我在 vectorA 中有一堆值,我想执行以下 while 循环(在伪代码中):
"制作一个变量double SUM = 0和一个变量int count。
取向量的front值,加到SUM"
然后擦除向量中的front值
变量SUM应该充当电容器:当SUM优于给定常数u时,
SUM 等于 SUM - u
另一个向量 vectorB 会在每次 SUM > u
时存储 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);
}
【问题讨论】:
标签: c++ vector sum iteration erase