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

另见