gpt4 book ai didi

C++ 实例变量/指向堆中数组的指针

转载 作者:行者123 更新时间:2023-11-30 01:29:47 27 4
gpt4 key购买 nike

我有一个动态结构数组。当我说动态时,我的意思是每次运行程序时元素的数量都会有所不同。在尝试将实例变量用作数组时遇到困难后,我遇到了类型不兼容 问题。还有其他方法吗?

我有这样的结构:

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++ 实例变量/指向堆中数组的指针,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5348999/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com