C++ 如何生成多维向量?
好吧,这听起来可能是个愚蠢的问题,但我没有从文档中读到任何说这是不可能的东西。不是这样,就是我又忽略了什么 所谓多维,我指的是像数组。有点像C++ 如何生成多维向量?,c++,C++,好吧,这听起来可能是个愚蠢的问题,但我没有从文档中读到任何说这是不可能的东西。不是这样,就是我又忽略了什么 所谓多维,我指的是像数组。有点像 vector<vector<double>> 向量 可能吗?至少与数组相比,可能存在哪些缺点?这是可能的,但请注意,两个之间需要一个空格,以消除右移运算符之间的歧义,即 vector<vector<double> > 编辑:正如人们指出的,使用C++11时不需要空格。这是可能的 其中一个可能的缺点可能是
vector<vector<double>>
向量
可能吗?至少与数组相比,可能存在哪些缺点?这是可能的,但请注意,两个
之间需要一个空格,以消除右移运算符之间的歧义,即
vector<vector<double> >
编辑:正如人们指出的,使用C++11时不需要空格。这是可能的
其中一个可能的缺点可能是,由于每个向量都有自己的分配,因此可能会导致从空闲存储中进行多个单独的分配。与此相反,动态数组分配只从连续内存进行一次,这对缓存更为友好。您所描述的是完全可能的,但如果您不使用C++11编译器,则需要将其键入:
vector<vector<double> >
当然,对于向量向量,可以在元素为向量的顶层添加和删除元素,也可以在元素为双元素的第二层添加和删除元素。这可能是祝福,也可能是诅咒,或者两者兼而有之,这取决于你正在尝试做什么——请注意,如果你向其中一个二级向量添加一个双精度,那么该向量的长度与其他所有向量的长度都不同。因为第二级向量可以有不同的长度,如果需要固定尺寸,我建议不要使用它们来替代二维数组 是的,很有可能。在尝试了这个之后,你有没有遇到什么特别的麻烦?我有,但是当yan回答关于尖括号之间的空间时,问题被澄清了。只是一个后续问题。默认情况下,g++将使用C++11定义(?)编译代码,对吗?不,您需要
std=C++11
。您只需要C++11之前版本中的空格。C++11允许在声明模板时附加两个
。C++11还有一个与向量不同的数组。它就像一个具有固定编译时定义长度的向量。
vector<vector<double> >
cin >> x;