我有一个快速的问题给大家。我正在尝试将一些ActionScript代码转换为C ++,并且很难用这一行:
private var edges:Vector.<Array>
究竟是什么?这基本上是一个多维向量吗?或者这只是将矢量声明为容器?我从研究中了解到,像C ++向量这样的向量必须用类型声明。但是,在C ++中我不能只放下数组,我必须使用另一个向量(可能),所以它看起来像:
vector<vector<T> example;
甚至可能
vector<int[]> example;
我不希望你们知道C ++的等价物,因为我主要用AS标签发布这个,但是如果你能确认我对AS的一半了解,那就太棒了。我做了一些谷歌搜索,但没有发现有人使用Array作为它的类型。
答案 0 :(得分:1)
来自Mike Chambers(adobe福音传道者):
“从本质上讲,Vector类是一个类型化数组,除了确保您的集合是类型安全的,还可以提供(有时是显着的)性能改进而不是使用数组。”
http://www.mikechambers.com/blog/2008/08/19/using-vectors-in-actionscript-3-and-flash-player-10/
基本上C ++中的向量基于相同的原理。至于将AS3中的Arrays向量移植到C ++中,原则上这不是一个明确的转换,因为您可以在C ++中拥有各种类型的集合(数组),例如char数组。但是,看起来你已经有了这个想法,因为你已经在你的问题中发布了两个途径的例子。
我会发布一些代码,但我认为你已经准确了。你在矢量中使用矢量的天气,或者你声明一个特定类型的集合,我认为这取决于什么最适合你的具体项目。
您也可能对以下内容感兴趣:
http://www.mikechambers.com/blog/2008/09/24/actioscript-3-vector-array-performance-comparison/