C ++数组阵列,分别定义部分

时间:2011-05-09 21:01:21

标签: c++ arrays string

我正在尝试制作一个包含2个字符串列表的数组数组(一个单数和一个复数)。

string item_name[2][6];
string item_name[0] = {"bag of CinnaCandies", "can of Arizona Tea", "Starbucks Mocha Frappe", "copy of Section 8: Prejudice", "Sushi Box", "pair of Nike Jordans"};
string item_name[1] = {"bags of CinnaCandies", "cans of Arizona Tea", "Starbucks Mocha Frappes", "copies of Section 8: Prejudice", "Sushi Boxes", "pairs of Nike Jordans"};

我不知道执行此操作的正确语法,我想将其保存为2个数组的数组,因此我可以使用以下代码:

if (quantity > 1)
    {
        cout << item_name[0][index];
    }
    else
    {
        cout << item_name[1][index];
    }

感谢。 :)

3 个答案:

答案 0 :(得分:6)

你走在正确的轨道上。您只需要一个声明,并嵌套括号,以便您有一个数组数组:

string item_name[2][6] = {{"bag of CinnaCandies", "can of Arizona Tea",
                           "Starbucks Mocha Frappe", "copy of Section 8: Prejudice",
                           "Sushi Box", "pair of Nike Jordans"},
                          {"bags of CinnaCandies", "cans of Arizona Tea", 
                           "Starbucks Mocha Frappes", 
                           "copies of Section 8: Prejudice", "Sushi Boxes", 
                           "pairs of Nike Jordans"}};

答案 1 :(得分:2)

正常初始化,但不使用常规常量,而是使用子数组:

string item_name[2][6] = {
    {"bag of CinnaCandies", "can of Arizona Tea", "Starbucks Mocha Frappe", "copy of Section 8: Prejudice", "Sushi Box", "pair of Nike Jordans"},
    {"bags of CinnaCandies", "cans of Arizona Tea", "Starbucks Mocha Frappes", "copies of Section 8: Prejudice", "Sushi Boxes", "pairs of Nike Jordans"}
};

答案 2 :(得分:2)

上述两个答案都是正确的。此外,您还可以使用以下内容:

vector<string> item_name[2];

这样,您仍然拥有一个“数组”数组,但子数组大小不固定,因此您可以继续追加任意数量的条目。

当然,您也可以使用符号

item_name[0][index];

获取第一个顶级数组的“index”项。