我想删除字符串的重复字符。该程序做对了,但是并没有缩小大小
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();
答案 0 :(得分:1)
您似乎将容量与实际大小混淆了。 std::string::shrink_to_fit确实会减少容量,但是不会更改大小(它将如何知道您想要的大小?)。
您需要通过调用std::string::resize
来减小大小。假设index
是您要保持通话的字符数
key.resize(index);