public member function
<string>

std::basic_string::resize

void resize (size_type n);void resize (size_type n, charT c);
调整字符串大小
将字符串调整为长度为n个字符。

如果n小于当前字符串长度,则当前值将被缩短为其前n个字符,删除第n个字符之后的字符。

如果n大于当前字符串长度,则通过在末尾插入达到大小为n所需的尽可能多的字符来扩展当前内容。 如果指定了c,则新元素将初始化为c的副本,否则,它们是值初始化的字符(空字符)。

参数

n
新的字符串长度,以字符数表示。
成员类型size_type是一种无符号整型类型。
c
用于填充添加到字符串的新字符空间的字符(如果字符串被扩展)。

返回值



示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
// resizing string
#include <iostream>
#include <string>

int main ()
{
  std::string str ("I like to code in C");
  std::cout << str << '\n';

  std::string::size_type sz = str.size();

  str.resize (sz+2,'+');
  std::cout << str << '\n';

  str.resize (14);
  std::cout << str << '\n';
  return 0;
}

输出
I like to code in C
I like to code in C++
I like to code


复杂度

未指定,但通常与新的字符串长度呈线性关系。

迭代器有效性

与此对象相关的任何迭代器、指针和引用都可能失效。

数据竞争

对象被修改。

异常安全

强保证: 如果抛出异常,则 basic_string 中没有任何更改。

如果n大于max_size,则抛出length_error异常。
如果该类型使用默认分配器,如果函数需要分配存储空间但失败,则会抛出bad_alloc异常。

另见