【发布时间】:2013-07-07 19:55:41
【问题描述】:
几个小时前我开始学习 C++(作为我曾经尝试学习的第一种编程语言),但我被一个非常简单(我确信)的问题所困......
基本上,我想从一种算法开始,它可以在给定高度和宽度的整数值的二维表面上,为任何点(由整数 a 和 b 定义)提供一个局部“密度值”。
我遇到的问题是,由于我想复用结果,如何存储程序启动时出现的数据(因为命令而出现的数据:
//print
cout<<D<<endl;
我真的很努力地寻找解决方案却没有找到任何东西...... 它可以存储在外部文件中,也可以存储在一种“缓冲区”中,任何好的解决方案都可以做到这一点。
我只需要保留这个数据列表
谢谢!
这是我的代码:
#include <iostream>
#include <fstream>
//#include <vector> (the solution??)
#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=1/3;
int l = 99; //width & height
int h = 99;
float u = 1; // UNIT
int main ()
{
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;
// next pixel & next line
a++;
if (a>l) {
a = 0;
b = b+u;
}
}
}
【问题讨论】:
-
是的,
std::vector<double>很适合这个。用名称声明一个变量,就像你一直在做的那样,然后使用push_back成员向它添加新的数据点。 -
您能说得更具体些吗?我尝试使用vector没有成功,我想我不知道如何使用它。
-
我没有找到关于这个主题的好例子或教程,有什么想法吗?非常感谢!
标签: c++ list memory printing while-loop