我想找到字符串數組中的最小元素,但我無法弄清楚如何做到這一點。我想出了這個代碼思想,它完美適用於整數,但不適用於字符串。這將編譯,雖然它只檢查字符串中的第一個字符的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