c++中string的resize函数
时间: 2023-04-24 14:07:39 浏览: 106
C++中的string类提供了resize函数,用于改变字符串的大小。该函数有两个参数,第一个参数是新的字符串大小,第二个参数是可选的填充字符。
如果新的字符串大小比原来的字符串大小小,则该函数会截断字符串,只保留前面的字符。如果新的字符串大小比原来的字符串大小大,则该函数会在字符串末尾添加填充字符,直到字符串大小达到指定大小。
例如,以下代码将字符串s的大小改为10,并在末尾添加字符'a':
```
string s = "hello";
s.resize(10, 'a');
```
执行后,字符串s的值为"helloaaaaa"。
相关问题
c++resize函数
C++中的`resize()`函数是用于调整容器大小的函数。它可以用于标准容器(如vector、string等)以及自定义的容器。`resize()`函数可以两个不同的方式进行使用:
1. `resize(n)`:将容器的大小调整为`n`。如果`n`小于当前容器的大小,则容器中多出来的元素会被删除。如果`n`大于当前容器的大小,则会在容器末尾添加默认构造的元素,将容器扩展到指定大小。
```cpp
std::vector<int> nums;
nums.resize(5); // 将nums的大小调整为5,新增的元素会被默认初始化为0
```
2. `resize(n, value)`:将容器的大小调整为`n`,并用`value`填充新增的元素。如果`n`小于当前容器的大小,则容器中多出来的元素会被删除。如果`n`大于当前容器的大小,则会在容器末尾添加值为`value`的元素,将容器扩展到指定大小。
```cpp
std::vector<int> nums;
nums.resize(5, 10); // 将nums的大小调整为5,并用值为10的元素填充新增的位置
```
需要注意的是,`resize()`函数会改变容器的大小,可能会导致原有元素的位置发生变化,因此在使用时需要谨慎考虑。
c++string.resize的所有用法
C++中的string类提供了resize()函数,用于改变字符串的大小。它有以下几种用法:
1. resize(n):将字符串的大小改为n,如果n小于当前大小,则截断字符串。如果n大于当前大小,则在末尾添加空字符。
```cpp
string str = "hello";
str.resize(7); // str变为"hello\0\0"
str.resize(3); // str变为"hel"
```
2. resize(n, c):将字符串的大小改为n,如果n小于当前大小,则截断字符串。如果n大于当前大小,则在末尾添加字符c。
```cpp
string str = "hello";
str.resize(7, 'a'); // str变为"helloaa"
str.resize(3, 'b'); // str变为"hel"
```
3. reserve(n):将字符串的存储空间改为至少n个字符,但不改变字符串的大小。这个函数可以用来避免频繁地重新分配内存。
```cpp
string str = "hello";
str.reserve(10); // 分配至少10字节的内存
```
4. shrink_to_fit():将字符串的存储空间缩小到恰好能够存储当前字符串的大小。这个函数可以用来释放多余的内存。
```cpp
string str = "hello";
str.reserve(20); // 分配至少20字节的内存
str.resize(3); // str变为"hel"
str.shrink_to_fit(); // 释放多余的内存
```
相关推荐
![h](https://img-home.csdnimg.cn/images/20210720083646.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)