我想找到字符串数组中的最小元素,但我无法弄清楚如何做到这一点。我想出了这个代码思想,它完美适用于整数,但不适用于字符串。这将编译,虽然它只检查字符串中的第一个字符的ASCII值。换句话说,在字符串数组中:lists[5] = { "aaa", "z", "cccc", "tt", "jjj"};
列表[1]或“z”是字符串的最小元素。但是,因为'a'是较低的ASCII值,所以代码将打印出Smallest aaa
而不是Smallest z
。现在我知道我可以使用.length对字符串中的每个字符进行某种深刻的同情,但是我想用一些简单的东西来解决这个问题,因为我想将它添加到一个将被重载为一个整数的函数中我可以在字符串和整数比较之间来回切换。但如果这是不可能的,我将只有两个独立的函数来处理每个函数。字符串数组中的最小元素C++
如果您有任何关于如何找到字符串数组中最小元素的建议,该怎么办?
#include <iostream>
#include <string>
#include <algorithm>
using namespace std;
int main() {
string lists[5] = { "aaa", "z", "cccc", "tt", "jjj"};
string smallests;
smallests = lists[0];
for (int i = 0; i < 5; i++){
cout << smallests << endl;
if (lists[i] < smallests){ // Flip <to> to find largest
smallests = lists[i];
}
}
cout << "Smallest " << smallests << endl;
cout << *min_element(lists, lists + 5) << endl;
return 0;
}
如最小长度?或按字母顺序? – CoryKramer 2014-10-03 19:56:24
好吧,但我现在可以看到按字母顺序排列。如字符串列表[5] = {“a”,“z”,“c”,“t”,“j”};都将是相同的长度。但一次只能做一件事,因为那张支票就是现在的代码。 – 2014-10-03 20:00:55