C++ 列表<&燃气轮机;C++;?
我需要一个整数数组的动态列表 我认为可以宣布:C++ 列表<&燃气轮机;C++;?,c++,arrays,list,C++,Arrays,List,我需要一个整数数组的动态列表 我认为可以宣布: list<int[10]> myListOfArrays; 列出mylistofarray; 但这不起作用,编译器返回错误: error: 'std::_list_node<_Tp>::_M_data' has incomplete type error: invalid use of array with unspecified bounds 错误:“std::\u列表\u节点::\u M\u数据”的类型不完整 错
list<int[10]> myListOfArrays;
列出mylistofarray;
但这不起作用,编译器返回错误:
error: 'std::_list_node<_Tp>::_M_data' has incomplete type
error: invalid use of array with unspecified bounds
错误:“std::\u列表\u节点::\u M\u数据”的类型不完整
错误:使用未指定边界的数组无效
有办法做到这一点吗
整数数组的大小不需要是动态的,只需要列表的数量 使用
std::list
of.列出mylistofarray
将起作用,特别是当您对具有静态大小的int数组感到满意时
比如:
std::list<int*> listOfArrays;
int[10] intArray;
listOfArrays.push_back(intArray);
std::数组列表;
int[10]intArray;
列表阵列。推回(阵列内);
你真正要做的是在列表中存储int指针。你可以创建向量向量或使其成为动态数组。你真的确定你需要一个
列表而不是向量
?对于这种大小的容器,我会选择向量
,如juanchopanza所建议的,以及当数组超出范围时会发生什么,但不是std::list
?将数组嵌入std::list
(与)会带来更好的安全性、更好的样式、更好的可维护性等等。此外,您无法从指针知道它是指向单个元素还是数组的第一个元素。如果是后者,则不知道数组的长度。所以它真的很脆弱。@RobertAllanHenniganLeahy非常正确,但我保持简单。我不认为这是他/她正在研究的关键代码,否则他们可能不会首先问这个问题。他/她甚至说,静态int数组就其用途而言是合适的,确切的长度是已知的。您的解决方案比std::list
更简单吗?据我所知,std::数组仍然是“一维的”?还是我遗漏了什么?基本上我需要的是一个沿一个轴具有动态大小的二维数组。。。