2种类型的多维数组cpp

Saf*_*rim 0 c++ multidimensional-array

这个问题是关于c ++的.如何创建一个数组,第一行有字符串,第二行有双打?我认为它应该是无效的,但它不起作用.还有其他方法吗?干杯

Nat*_*ica 5

数组中不能有不同的类型.如果您需要两种不同的类型,有几种方法可以做到这一点

  • 您可以使用std::pair类似:std::pair<std::string, double>
  • 您可以使用struct或class将不同类型包装在一起,如:

    struct some_name
    {
        std::string string_name;
        double double_name;
    };
    
    Run Code Online (Sandbox Code Playgroud)
  • 你可以使用std::map或std::unordered_map

  • 您可以使用2个单独的阵列,一个用于std::sting零件,一个用于double零件
  • C++ 11及更高版本也有std::tuple类似std::pair但可用于2种以上的类型.

std::array如果您在编译时知道数组的大小,并且std::vector如果在运行时之前不知道数组大小,我还建议使用a .