具有不同类型的向量的c++向量

c++ vector of vector with differents types

本文关键字:向量 c++ 同类型      更新时间:2023-10-16

如何声明和推送一个具有不同类型变量的向量的2D向量。向量是好方法吗(使用数组更好吗)?

我的变量是这样的:

int id;
string name;
int start;
int end;

我想获得一份清单:((id1 name1 start1 end1),(id2 name2 start2 end2)。。。

很抱歉出现这个基本问题,但我曾经使用python,它允许这样做。感谢

您不需要2D数组,而是需要记录数组。类似这样的东西:

struct Record
{
  int id;
  std::string name;
  int start;
  int end;
};
std::vector<Record> records;

您还可以使用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;
    }
}