如何使用不同类型的变量声明和推回向量的二维向量。矢量是一种好方法(使用数组是否更好)?
我的变量是这样的:
int id;
string name;
int start;
int end;
我想获得一份清单: ((id1 name1 start1 end1),(id2 name2 start2 end2)...
对不起这个基本问题,但我曾经使用python,允许这样做。 感谢
答案 0 :(得分:6)
您不需要2D数组,您需要一组记录。像这样:
struct Record
{
int id;
std::string name;
int start;
int end;
};
std::vector<Record> records;
答案 1 :(得分:3)
您还可以使用std::tuple
(C ++ 11)将元组推送到向量
#include <iostream>
#include <tuple>
#include <string>
#include <vector>
int main()
{
using record = std::tuple<int, std::string, int, int>;
std::vector<record> v;
v.emplace_back(1, "test1", 2, 3);
v.emplace_back(10, "test2", 20, 30);
for(auto&& elem: v) // display the elements
{
std::cout << std::get<0>(elem) << " ";
std::cout << std::get<1>(elem) << " ";
std::cout << std::get<2>(elem) << " ";
std::cout << std::get<3>(elem) << std::endl;
}
}