我需要有一个myClass对象向量的二维数组,这样我就可以使用数组中的坐标(如2D平面)访问其中一个向量。但是必须在运行时确定大小。因此,我决定将它变成一个声明为这样的3D矢量
vector<vector<vector <myClass> > > vex;
这样,我可以在运行时声明大小。但是,我无法弄清楚声明前两个外部向量大小的语法。使用单个向量,它的声明如下:
vex(size);
但是如何为像我这样的多向量做到这一点?这样我就可以使用
访问其中一个myClass向量vex[x][y];
答案 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