我想删除该程序正确执行的字符串中的重复字符,但不会缩小大小

时间:2018-09-13 13:34:28

标签: c++

我想删除字符串的重复字符。该程序做对了,但是并没有缩小大小

string key;
int index = 0;
  for(int i = 0; i< key.length(); i++) {
    int j;
    for(j = 0; j<i; j++) {
      if (key[i] == key[j])
      break;
    }
    if (j==i)
      key[index++] = key[i];
}
    cout<<key.shrink_to_fit();

1 个答案:

答案 0 :(得分:1)

您似乎将容量与实际大小混淆了。 std::string::shrink_to_fit确实会减少容量,但是不会更改大小(它将如何知道您想要的大小?)。

您需要通过调用std::string::resize来减小大小。假设index是您要保持通话的字符数

key.resize(index);