C++ 如何创建不同类型的多维向量/数组?
我知道要创建多维向量,你需要这样写C++ 如何创建不同类型的多维向量/数组?,c++,C++,我知道要创建多维向量,你需要这样写 std::vector< std::vector <int> > name; std::vector<int> firstVector; firstVector.push_back(10); numbers.push_back(thisVector); std::cout << numbers[0][0] One 200 5.1% Three 10 1.4% Nine 5000
std::vector< std::vector <int> > name;
std::vector<int> firstVector;
firstVector.push_back(10);
numbers.push_back(thisVector);
std::cout << numbers[0][0]
One 200 5.1%
Three 10 1.4%
Nine 5000 10.8%
我不确定我是否遵循了你的解释,但听起来你真正想要的是一个结构向量:
struct whatever {
std::string first; // The first column will be a string
int second; // ...the second would be ints
double third; // ...and the third would be doubles.
};
std::vector<whatever> data;
struct which{
std::string first;//第一列将是字符串
int second;/…第二个将是int
第三双;/…第三双是双打。
};
std::矢量数据;
就您的输出而言,您应该定义一个
操作符我不确定是否遵循了您的解释,但听起来您真正想要的是一个结构向量:
struct whatever {
std::string first; // The first column will be a string
int second; // ...the second would be ints
double third; // ...and the third would be doubles.
};
std::vector<whatever> data;
struct which{
std::string first;//第一列将是字符串
int second;/…第二个将是int
第三双;/…第三双是双打。
};
std::矢量数据;
就您的输出而言,您应该定义一个操作符如果您的编译器支持C++11,您可以使用元组的向量:
#include <vector>
#include <tuple>
#include <string>
int main()
{
std::vector<std::tuple<std::string, int, double>> var;
var.emplace_back("One", 200, 5.1);
var.emplace_back("Three", 10, 1.4);
var.emplace_back("Nine", 5000, 10.8);
}
#包括
#包括
#包括
int main()
{
std::向量var;
变量“一”,200,5.1;
变量emplace_back(“三”,10,1.4);
变量emplace_back(“九”,5000,10.8);
}
使用进行编译时索引。如果编译器支持C++11,则可以使用元组的向量:
#include <vector>
#include <tuple>
#include <string>
int main()
{
std::vector<std::tuple<std::string, int, double>> var;
var.emplace_back("One", 200, 5.1);
var.emplace_back("Three", 10, 1.4);
var.emplace_back("Nine", 5000, 10.8);
}
#包括
#包括
#包括
int main()
{
std::向量var;
变量“一”,200,5.1;
变量emplace_back(“三”,10,1.4);
变量emplace_back(“九”,5000,10.8);
}
使用进行编译时索引。我建议将数据封装到类中,然后使用该类的向量进行jsut
(可能不会按原样编译)
类MyData
{
公众:
std::字符串col1;
int-col2;
双col3;
};
...
std::向量myData;
MyData数据1;
data1.col1=“一”;
data1.col2=10;
数据1.col3=5.1
myData.push_back(数据1);
这更便于使用,因为现在当您需要打印出集合时,您只需迭代一组对象,而不必担心索引或访问向量或元组的复杂向量。我建议将数据封装到类中,而不是使用向量班级
(可能不会按原样编译)
类MyData
{
公众:
std::字符串col1;
int-col2;
双col3;
};
...
std::向量myData;
MyData数据1;
data1.col1=“一”;
data1.col2=10;
数据1.col3=5.1
myData.push_back(数据1);
这更便于使用,因为现在当您需要打印出集合时,您只需迭代一组对象,而无需担心索引或访问向量或元组的复杂向量