C++ 我在c++;用于表示图形。但我可以';我似乎无法访问数组的元素

C++ 我在c++;用于表示图形。但我可以';我似乎无法访问数组的元素,c++,arrays,list,arraylist,C++,Arrays,List,Arraylist,基本上这就是我所做的,一个int指针列表,用作数组列表: #include <list> list<int> *l; l = new list<int>[V + 1]; #包括 列表*l; l=新列表[V+1]; 我可以将_向后推(整数)到l[x]中,在列表的“x”位置创建数组,并且没有得到任何错误。但当我使用l[x][some_index]访问列表中“x”位置的数组元素时,我得到的错误是: 错误:“运算符[]”不匹配(操作数类型为“std::uu cxx

基本上这就是我所做的,一个int指针列表,用作数组列表:

#include <list>
list<int> *l;
l = new list<int>[V + 1];
#包括
列表*l;
l=新列表[V+1];
我可以将_向后推(整数)到l[x]中,在列表的“x”位置创建数组,并且没有得到任何错误。但当我使用l[x][some_index]访问列表中“x”位置的数组元素时,我得到的错误是:

错误:“运算符[]”不匹配(操作数类型为“std::uu cxx11::list”和“int”)

有人能帮我吗?
谢谢

< P> <代码>:ST::C++中的列表< /代码>被实现为双链表。它不支持对其元素的随机访问,因此没有可用的
[]
运算符。可以使用
front()
back()
访问第一个和最后一个元素,也可以使用迭代器迭代和访问列表的内容

在您的示例中,您使用的是
l[x][some\u index]
l[x]
将提供给动态分配的数组列表的第x个元素。但随后您将在返回的
std::list
对象上应用
[]
运算符。这是不存在的

您可能正在寻找使用
std::vector
。这是一个大小可变的容器,在内存中连续存储元素,因此可以随机访问元素,您可以使用
[]
运算符


另一方面,您没有理由使用指针。您可以有一个向量向量(如
std::vector
)。如果您需要分配东西,那么使用智能指针,如“代码> STD::UnQuyGPPT/<代码>或 STD::SysDypPTR ,根据您的需要。它不支持对其元素的随机访问,因此没有可用的
[]
运算符。可以使用
front()
back()
访问第一个和最后一个元素,也可以使用迭代器迭代和访问列表的内容

在您的示例中,您使用的是
l[x][some\u index]
l[x]
将提供给动态分配的数组列表的第x个元素。但随后您将在返回的
std::list
对象上应用
[]
运算符。这是不存在的

您可能正在寻找使用
std::vector
。这是一个大小可变的容器,在内存中连续存储元素,因此可以随机访问元素,您可以使用
[]
运算符

另一方面,您没有理由使用指针。您可以有一个向量向量(如
std::vector
)。如果您确实需要分配内容,则根据您的需要使用智能指针,例如
std::unique_ptr
std::shared_ptr