关于向量和常值的问题
下面这个程序要怎么改啊?好郁闷
#include "stdafx.h"
#include<iostream>
#include<vector>
using namespace std;
void statistics();
void keep_window_open();
int _tmain(int argc, _TCHAR* argv[])
{
statistics();
keep_window_open();
return 0;
}
void statistics()
{
vector<double> data;
double temp=0;
cin >> temp;
while(temp != -1)
{
data.push_back(temp);
cin >> temp;
}
const int n = data.size();
int array[n];
for(unsigned i=0;i<data.size();++i)
cout << data[i] << endl;
return;
}
void keep_window_open()
{
cout<<"Input any character to exit:";
char ch;
cin>>ch;
}
[解决办法]
数组大小是不能用变量决定的,因为这是一个静态数组,就是在编译的时候就确定array的大小,但是n的值要在程序运行的时候才能有,所以这个地方编译不通过。你可以用动态数组,也不用const了:
int *array=new int[n];
因为动态数组是在程序运行过程中动态创建的,这时候n的值已经确定下来了。不过别忘了在函数结束时析构掉,就在return之前就行了:
delete array;
另外,不明白你这个array是干什么用的,下面也没用到啊。。。