我得到這個簡單的程序讀取像「13 11 9 10」字符串。我想拆分字符串然後對它們進行排序。然而sort()似乎不起作用,有幫助嗎? 輸入:13 11 9 10 ,輸出:13 11 9 10 謝謝!爲什麼sort()不起作用?
#include <string>
#include <sstream>
#include <iostream>
#include <algorithm>
#include <vector>
using namespace std;
vector<int> split(string s)
{
istringstream iss(s);
vector<int> result;
do{
string sub;
iss>>sub;
if(sub!="")
result.push_back((int)atoi(sub.c_str()));
}while(iss);
return result;
}
int main(void)
{
string s;
while(cin>>s)
{
vector<int> vec;
vec=split(s);
sort(vec.begin(), vec.end());
for (int i = 0; i < vec.size(); ++i)
{
cout<<vec[i]<<endl;
}
}
}
http://liveworkspace.org/code/c42d25b1ae979db4044c8cb4b5d3cb51它的工作原理。 – ForEveR 2012-07-18 07:01:09
問題不在於'std :: sort()',而在於'split(string)'方法。 – iammilind 2012-07-18 07:02:26
問題出在'cin >> s',它已經分割你的輸入字符串。嘗試使用'getline()'來代替。 – timrau 2012-07-18 07:05:31