我有一个动态的结构数组。当我说动态时,我的意思是元素的数量可以随程序每次运行而变化。在尝试将实例变量用作数组困难之后,我遇到了类型不兼容的问题。还有其他方法吗?
我有这个结构:
struct movie
{
int rank;
string title;
string distributor;
string weekend;
string total;
} ;
我有这个类头文件:
class ReadFile{
public:
ifstream moviesFile;
movie movies[];
ReadFile(string);
movie handleLine(string);
string getString(vector<char>);
};
这就是我试图实例化movies实例变量的方式:
//Some code
movie temparray[linecount];
//temparray is filled with various movie structures.
movies = temparray;
这是我收到错误消息的时间。我将如何完成实例化我的电影数组的任务。谢谢!
最佳答案
数组是不可修改的左值,因此无法分配给它们
所以movies = temparray;
是非法的
在C++中,始终建议您使用std::vector
代替C样式数组
//....
public:
ifstream moviesFile;
std::vector<movie> movies;
//....
//Some code
movie temparray[linecount];
movies.assign(temparray, temparray+linecount);
关于c++ - C++实例变量/指向堆中数组的指针,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/5348999/