【问题标题】:how to define two dimensional string , not a char vector in C++如何定义二维字符串,而不是 C++ 中的字符向量
【发布时间】:2021-07-26 10:50:33
【问题描述】:

我想定义二维字符串,而不是 C++ 中的字符向量 像这样:

vector<vector<char>> vect
{
        {"Simple", "Simple", "Simple"},
        {"Simple", "Simple", "Simple"},
        {"Simple", "Simple", "Simple"}
};

谢谢

【问题讨论】:

  • 那么你想要的是 std::string 的向量的向量?
  • “二维字符串”是什么意思?
  • 如果你想在代码中定义一个“二维字符串”,你必须先用文字定义它,这样我们才能知道你的意思。它必须具备哪些属性?为什么具体vector&lt;vector&lt;char&gt;&gt;不适合?
  • 您的初始化程序是用于字符串的二维向量,但 vect 被声明为字符的二维向量,因此不清楚您想要哪个
  • 是向量还是数组没关系,但我需要这样的东西才能有一个二维字符串数组。

标签: c++ arrays vector


【解决方案1】:

在您的声明中,类型与初始值设定项不匹配。你要么想要一个二维的字符串向量:

std::vector<std::vector<std::string>> vect
{
        {"Simple", "Simple", "Simple"},
        {"Simple", "Simple", "Simple"},
        {"Simple", "Simple", "Simple"}
};

或字符的二维向量,即字符串存储为std::vector&lt;char&gt;的一维字符串向量:

vector<vector<char>> vect
{
        {'s', 'i', 'm'},
        {'p', 'l', 'e'},
        {'f', 'o', 'o'}
};

由于不清楚您真正想要什么,第三种选择是字符串向量(可以视为 2d 字符容器):

std::vector<std::string> vect
{
        "Simple", "Simple", "Simple",
        "Simple", "Simple", "Simple",
        "Simple", "Simple", "Simple"
};

【讨论】:

  • 我的意思是你举的第一个例子
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2017-05-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多