我找不到任何人类解释:如何创建一系列列表,如:
std::list<int> mylist[size] ?
Run Code Online (Sandbox Code Playgroud)
如果我把它放在我的程序中,它会编译但会产生一些问题,因为它不会执行任何代码(如果我写出mylist w/out [size],其余代码就可以正常工作)
我正在读某个地方,不推荐使用C的原始数组; 有什么选择?
谢谢抱歉
进一步来说,
#include <array>
#include <list>
int main() {
std::array<std::list<int>, 10> this_would_do;
}
Run Code Online (Sandbox Code Playgroud)
您的声明不正确,并且在C ++中不受支持。您试图在运行时声明一个可变大小的数组,这是C99的功能,但不是C ++中的功能。参见此处:运行时允许数组大小而无需动态分配?
你有这个:
std::list<int> mylist[size]
Run Code Online (Sandbox Code Playgroud)
您需要的是:
std::list<int> mylist[] = new std::list<int>[size];
Run Code Online (Sandbox Code Playgroud)
但这仍然不是一个好主意,因为您稍后需要使用来取消分配delete []。就像其他人所说的,您可以通过几种不同的方式来做到这一点,所有这些方式对于c ++都是更好的:
std::list< std::list< int > > myListOfLists; // Linked list of linked lists
std::vector< std::list< int > > myVectorOfLists; // Better, a vector is more like an array
std::array<std::list<int>, 10> this_would_do; // From above, only works if you know the array size at compile-time
Run Code Online (Sandbox Code Playgroud)
希望这对您有所帮助。
| 归档时间: |
|
| 查看次数: |
29252 次 |
| 最近记录: |