2016-08-05 4 views
0

整数のベクトルをソートするコードを記述しようとしています。私のコードは完了し、それは動作します。入力番号がない場合、「ソート済み:[スペース]」の後にスペースを削除するにはどうすればよいですか?ここに私のコードです:入力番号がない場合、「ソート済み:[スペース]」の後にスペースを削除するにはどうすればよいですか?

#include <iostream> 
#include <string> 
#include <vector> 
#include <cstdlib> 

using namespace std; 

/* sort function */ 
void sort(vector<int>& v) 
{ 
    for (int inc1 = 0; inc1 < v.size() - 1; ++inc1) 
    { 
    int minimum = inc1; 

    for (int inc2 = inc1; inc2 < v.size(); ++inc2) 
    { 
     if (v[inc2] < v[minimum]) 
     { 
      minimum = inc2; 
     } 
    } 

    if (minimum != inc1) 
    { 
     int temporary = v[minimum]; 
     v[minimum] = v[inc1]; 
     v[inc1] = temporary; 
    } 

    if (v.empty()) 
    { 
     return; 
    } 
    } 
} 

/* display function */ 
void display(vector<int> v) 
{ 
    for (int inc1 = 0; inc1 < v.size(); ++inc1) 
    { 
    cout << v[inc1]; 
    if (inc1 != v.size() - 1) 
    { 
     cout << ", "; 
    } 
    } 

cout << endl; 
} 

/* main function */ 

int main() 
{ 
    /* getting inputs */ 
    cout << "Enter integers (one on each line, entering an empty line quits):" << endl; 
vector<int> v; 
string myString; 

while (getline(cin, myString)) 
{ 
    /* if encounters a empty line, prints the output */ 
    if (myString.length() == 0) 
    { 
     break; 
    } 
    /* if not add values to the vector */ 
    else 
    { 
     v.push_back(atoi(myString.c_str())); 
    } 
} 

cout << "Sorted: "; 

/* function call to sort */ 
sort(v); 
/* function call to display */ 
display(v); 
getchar(); 

return 0; 
} 

助けていただきありがとうございます!ありがとうございました!

+0

@Steephen次の行cout << "Sorted: ";を置き換えます。しかし、私はそれが入力番号を持っていたときにスペースを確保する必要があります。 – Wang

答えて

1

v.empty()? cout << "Sorted:": cout << "Sorted: "; 
0

入力番号がない場合、ベクターは空になります。だから、余分なスペースを印刷するかどうかに基づいて条件を使用することができます。

+0

しかし、この条件文をどこに置くべきかはわかりません。 – Wang

関連する問題