public member function
<string>

std::basic_string::operator=

string (1)
basic_string& operator= (const basic_string& str);
c-string (2)
basic_string& operator= (const charT* s);
character (3)
basic_string& operator= (charT c);
string (1)
basic_string& operator= (const basic_string& str);
c-string (2)
basic_string& operator= (const charT* s);
character (3)
basic_string& operator= (charT c);
initializer list (4)
basic_string& operator= (initializer_list<charT> il);
move (5)
basic_string& operator= (basic_string&& str) noexcept;
字串賦值
將新值賦給字串,替換其當前內容。

(有關其他賦值選項,請參見成員函式 assign)。

引數

str
相同型別的 basic_string 物件(具有相同的類模板引數charT, 特性 (traits)Alloc),其值將被複制 (1) 或移動 (5),如果與*this不同(如果移動,str 將處於未指定但有效的狀態)。
s
指向以null結尾的字元序列的指標。
該序列被複製為字串的新值。
長度由呼叫確定traits_type::length(s).
c
一個字元。
字串值設定為此字元的單個副本(字串長度變為1).
il
il
這些物件是從初始化列表宣告符自動構造的。
字元按相同順序複製。

charTbasic_string 的字元型別(即,它的第一個模板引數)。

返回值

*this

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
// string assigning
#include <iostream>
#include <string>

int main ()
{
  std::string str1, str2, str3;
  str1 = "Test string: ";   // c-string
  str2 = 'x';               // single character
  str3 = str1 + str2;       // string

  std::cout << str3  << '\n';
  return 0;
}

輸出
Test string: x


複雜度

未指定。
未指定,但通常與新的 字串長度成線性關係(對於移動版本為常數)。

迭代器有效性

與此物件相關的任何迭代器、指標和引用都可能失效。

資料競爭

物件被修改。
移動賦值 (5) 修改 str

異常安全

對於移動賦值 (5),該函式不丟擲異常(無丟擲保證)。
在所有其他情況下,如果丟擲異常,則不會產生任何影響(強保證)。

如果結果 字串長度 超過 max_size,則會丟擲 length_error 異常。
如果該型別使用預設分配器,如果函式需要分配儲存空間但失敗,則會丟擲bad_alloc異常。

另見