【发布时间】:2021-02-23 23:43:39
【问题描述】:
我有以下从外部 .txt 文件获取/创建的二维数组。
string accountsArr[5][7] = {
"bham@gnet.com", "Blake", "Ham", "squid62", "1987", "U", "Teacher",
"jdark@att.net", "Jim", "Dark", "gymrat32", "1985", "A", "Master",
"hgreen@lakes.net", "Hannah", "Green", "flower22", "2007", "U", "Apprentice",
"tsmith@dna.com", "Tom", "Smith", "tuna20", "2000", "U", "Teacher",
"jarrow@pnet.com", "James", "Arrow", "ahoy10", "2005", "U", "Apprentice"
};
我需要根据“姓氏”列(每行的列索引 2)对这个数组进行排序,所以我基本上最终得到:
string accountsArr[5][7] = {
"jarrow@pnet.com", "James", "Arrow", "ahoy10", "2005", "U", "Apprentice",
"jdark@att.net", "Jim", "Dark", "gymrat32", "1985", "A", "Master",
"hgreen@lakes.net", "Hannah", "Green", "flower22", "2007", "U", "Apprentice",
"bham@gnet.com", "Blake", "Ham", "squid62", "1987", "U", "Teacher",
"tsmith@dna.com", "Tom", "Smith", "tuna20", "2000", "U", "Teacher"
};
我将如何以编程方式执行此操作?使用 std::sort 不起作用。我不断收到use of undeclared identifier sort。
int n = sizeof(accountsArr[0]) / sizeof(accountsArr[0][0]);
std::sort(accountsArr, accountsArr + n);
更新:我需要/想知道如何在原始字符串数组上执行此操作(没有向量、结构等)。
【问题讨论】:
-
您是否尝试过使用
std::sort?你知道如何在 C++ 中使用它吗?您的 C++ 教科书中是否有std::sort的示例可供您查看?有什么关于排序的具体内容您不确定吗? -
为什么不为每个字段创建一个
struct,然后重载operator <? -
@SamVarshavchik 问题是我的教科书似乎没有进入二维数组。它展示了很多只有数字的一维数组的例子,这比我目前试图解决的问题要简单得多。
-
对一维数组、二维数组或 42 维数组进行排序没有根本的不同。基本原理都是一样的。不幸的是,我们不会在 stackoverflow.com 上为其他人编写代码。您需要展示您对数组进行排序的尝试,并说明您的具体问题是什么。
-
我有没有声称你能找到它?我说的恰恰相反:你不太可能找到碰巧写过相同类型的其他人。 C++ 是当今使用的最复杂的通用编程语言。试图通过寻找其他人做同样的事情并在不学习基本原理的情况下复制它来在 C++ 中实现某些东西是行不通的。您需要了解排序的工作原理,在 C++ 中,
std::sort的工作原理,然后弄清楚如何使其工作 与您的数组。 C++ 没有即时满足感。
标签: c++ arrays sorting multidimensional-array bubble-sort