我在课程中使用c ++并且为了解决程序我应该创建一个可能在维度上有所变化的数组。 例如:
package {
import flash.display.Sprite;
public class Main extends Sprite {
private var actionQueue:Array = new Array();
public function Main() {
var action:ActionBase;
var foobar1:ActionBase = new ActionBase();
actionQueue[actionQueue.length] = foobar1;
actionQueue[actionQueue.length] = new ActionBase();
actionQueue[actionQueue.length] = Object;
for (var i:int = 0; i < actionQueue.length; ++i)
{
action = actionQueue[i] as ActionBase;
if (action != null && action is ActionBase)
{
action.step();
if (action.done())
{
trace("all done");
}
}
}
}
}
}
class ActionBase {
var _done:Boolean = false;
function ActionBase() {
}
function done():Boolean {
trace(done);
return _done;
}
function step() {
_done = true;
trace(step);
}
}
答案 0 :(得分:5)
与动态数组一样,请使用std::vector
:
unsigned I, J;
std::cin >> I >> J;
if (!std::cin) {
// handle error
}
std::vector<double> X(I * J);
在索引(i
,j
)获取/设置元素:
X.at(i * J + j) = 1;
std::cout << X.at(i * J + j);
答案 1 :(得分:2)
如果您想在c ++中使用已分配和初始化的二维动态数组,请使用WEB_CONCURRENCY: 3
,如下所示:
std::vector
构造函数保留并初始化所需的元素。
Yo可以使用#include <vector>
int I,J;
cin>>I;
cin>>J;
std::vector<std::vector<double>> X( I, std::vector<double>( J, 0.0 ) );
访问它,operator []
会为您提供元素数量。
无论如何,你应该更喜欢Elyse的解决方案。