挿入ソートを使用して文字列ベクトルをソートしようとしています。挿入ソートを文字列ベクトルで
これは私のコードです:
void insertionsort(std::vector<std::string> &strings)
{
typedef std::vector<std::string>::size_type size_type;
for(size_type i = 0;i < strings.size(); i++)
{
std::string const tmp = strings[i];
size_type j = i - 1;
while(j >= 0 && tmp < strings[j]) //this is the problem
{
strings[j + 1]= strings[j];
j--;
}
strings[j + 1]=tmp;
}
}
それは私にエラー与える:
comparison of unsigned expression >= 0 is always true
私は> 0 Jを使用した場合の機能が正常に動作します。しかし、それは完全に文字列の最初の行を無視します。
私が持っている場合例えば:
2 line1
3 line2
4 line3
5 line4
1 line5
をそれからそれは私を与える:
2 line1
1 line5
3 line2
4 line3
5 line4
署名付きタイプを使用してください。 (議論の余地はないが、標準化委員会の何人かの著名なメンバーが私と一緒にいる) –