繁体   English   中英

如何制作多维矢量?

[英]How do I make multi-dimensional vectors?

好的,这听起来像是一个愚蠢的问题,但是我还没有从文档中读到任何不可能的内容。 要么,要么我又忽略了一些东西。

多维是指数组。 是这样的

vector<vector<double>>

可能? 至少与阵列相比,可能存在哪些弊端?

可能,但是请注意,您需要在两个>之间加一个空格,以消除右移运算符之间的歧义,即

vector<vector<double> >

另外,我不会将这些向量称为数组,因为数组在C ++中具有非常明确的含义:

double matrix[10][10];

编辑:正如人们指出的那样,使用C ++ 11时不需要空格。

有可能的。

可能的缺点之一是,由于每个向量都进行自己的分配,因此可能会导致从免费存储中进行多个单独的分配。 相反,动态数组分配仅从连续内存进行一次,这对缓存更友好。

尽管您不使用C ++ 11编译器,但您键入的内容绝对是可能的,但您描述的内容绝对是可能的:

vector<vector<double> >

两个>字符之间的空格是必需的,这样编译器就不会认为您正在使用>>运算符,如下所示:

cin >> x;

当然,使用矢量向量,您可以在元素为向量的顶层或元素为双精度的第二层添加和删除元素。 根据您要尝试执行的操作,这可以是祝福,也可以是诅咒,或两者兼而有之。-请注意,如果您向第二级向量之一添加双精度,则该向量的长度将与所有其他向量不同。 由于第二级向量的长度可能不同,因此,如果您要使用固定尺寸,则建议不要使用它们代替2D数组。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM