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異常。

另見