宣布3D矢量的大小

时间:2016-10-18 00:17:17

标签: c++ arrays vector

我需要有一个myClass对象向量的二维数组,这样我就可以使用数组中的坐标(如2D平面)访问其中一个向量。但是必须在运行时确定大小。因此,我决定将它变成一个声明为这样的3D矢量

   vector<vector<vector <myClass> > > vex;

这样,我可以在运行时声明大小。但是,我无法弄清楚声明前两个外部向量大小的语法。使用单个向量,它的声明如下:

vex(size);

但是如何为像我这样的多向量做到这一点?这样我就可以使用

访问其中一个myClass向量
vex[x][y];

2 个答案:

答案 0 :(得分:3)

您可以使用typedef来简化操作:

#include <vector>
typedef std::vector<MyClass> MyClassV;
typedef std::vector<MyClassV> MyClass2V;
typedef std::vector<MyClass2V> MyClass3V;

// ...

然后像这样初始化:

MyClass3V vect(num1, MyClass2V(num2, MyClassV(num3)));

这会创建num1 x num2 x num3的{​​{1}}向量。

如果你想要一个完全空的矢量,那么只需

MyClass

这样做。然后,您可以MyClass3V vect; 将每个维度添加到您需要的任何维度:

resize()

答案 1 :(得分:2)

如果您需要使用默认构造的app.get("/", function(request, response){ response.render("index"); }); // request for quotes is received app.get("/get", function(req, res){ // open a connection to the database var connection = mysql.createConnection({ connectionLimit: 100, host: "my-test-database.c3j6vph7cyv2.us-west-2.rds.amazonaws.com", user: "public", password:"helloworld", database:"quotes" }); // connect to the database connection.connect(function(error){ if(error){ console.log("Couldn't connect :( " + error); } else { console.log("Connected successfully~!"); } }); // retrieve quotes from database connection.query("SELECT * FROM Quotes", function(error, rows, fields){ if (error) { console.log("Something went wrong... " + error); res.end(); } else { res.jsonp({"quotes": rows}); } }); connection.end(); }); 实例填充向量,则可以执行以下操作:

myClass
相关问题