按字典顺序排序C ++

时间:2016-06-16 21:54:08

标签: c++

这是我的代码:

 sort(S1.begin(), S1.begin()+4);
for ( int i = 0; i < S1.capacity(); i++ )
cout << S1[i]<<endl;

我得到了这个: 一个 AA AAB AB b 一个 AA AAC AC ç

但我应该得到这个: &#34; a&#34;,&#34; aa&#34;,&#34; aab&#34;,&#34; aac&#34;,&#34; ab&#34;,&#34; ac& #34;,&#34; b&#34;,&#34; c&#34;

我做错了什么?

2 个答案:

答案 0 :(得分:1)

结束迭代器不正确 - 您应该使用S1.end()而不是S1.begin()+4

答案 1 :(得分:0)

  • 使用end()迭代器。
  • 使用size()

这可能更像预期的

sort(S1.begin(), S1.end());
for ( int i = 0; i < S1.size(); i++ ) {
    cout << S1[i] << endl;
}

你也可以:

  • 使用std::size_t代替(已签名)int
  • 使用++i代替 i++

但这些只是细节。