使用比较运算符对字符串数组进行排序
Using comparison operators to sort string array
我到处寻找,找不到适合我需求的具体答案。我想使用这种类型的格式对比此示例更复杂的数组进行排序。它可以编译,但是当我运行它时,我得到terminated by signal SIGSEV
(地址边界错误)。
我正在尝试做的一个简单的例子:
string array[] = {zipper, bad, dog, apple, car};
string temparray[5];
int counter = 0;
for(int i = 0; i < 5; i++){
for(int x = 0; x < 5; x++){
if(array[i] > array[x]){
counter++;
}
}
temparray[counter] = array[i];
}
for(int y = 0; y < 5; y++){
array[y] = temparray[y];
}
似乎有什么问题?
你永远不会重置counter
。假设您的数组是 {5,4,3,2,1}
。然后在 for
循环的第一次迭代之后,您将得到 counter
=4。在内部 for 循环的下一次迭代之后,counter
将是 7,您将尝试访问行上temparray
的第 7 个元素
temparray[counter] = array[i];
但temparray
只有 5 个元素长。我不知道>
和<
操作员如何为std::string
工作,但我敢打赌橡树对橡子这是你的问题。
您只需添加即可解决此问题
counter=0;
紧跟在上述行之后:
temparray[counter] = array[i];
或者通过在循环开始时将其初始化为零,或者在循环中声明它或你有什么。
相关文章:
- 显示错误输出的简单数组排序程序
- C 使用单个函数对具有多种值类型的数组排序
- 2D数组排序,空格打乱顺序
- C 2D数组排序
- C++数组排序 - 将"bbba"和"0001"视为不正确排序的问题
- 数组排序功能
- CString 数组排序
- 简单的数组排序/检查 划分和征服版本
- C++ 中的多维数组排序
- 选择在++中对并行数组排序
- C++:二维指针数组排序:选择排序不适用于某些实例
- C++字符串数组排序
- C++中的指针数组排序算法
- 在VC++6中使用向量进行数组排序时出错,而在VC++2012中没有错误
- 将索引数组排序为主数组
- 数组排序、数组输入、数组输出
- C++数组排序,内存错误
- 在嵌入式系统上将数组排序功能从c++移植到c
- 基于其他int数组排序
- 多维数组排序c++奇怪行为