std::basic_string<CharT,Traits,Allocator>::copy

来自cppreference.com
< cpp‎ | string‎ | basic string
 
 
 
std::basic_string
 
size_type copy( CharT* dest, size_type count, size_type pos =0)const;
(C++20 起为 constexpr)

复制子串 [pospos + count)dest 指向的字符串。如果请求的子串越过字符串结尾,或 count == npos,那么复制的子串是 [possize())

产生的字符串不是空终止的。

目录

[编辑]参数

dest - 指向目标字符串的指针
count - 子串长度
pos - 所包含的首字符位置

[编辑]返回值

复制的字符数。

[编辑]异常

pos > size() 时抛出 std::out_of_range

如果因为任何原因抛出了异常,那么此函数无效果(强异常安全保证)。

[编辑]复杂度

count 成线性。

[编辑]示例

#include <iostream>#include <string>   int main(){std::string foo("WINE");   // 花括号初始化会将所有字符初始化为 0,提供空终止符char bar[4]{};   // 为确保空终止,不复制最后一个字符 foo.copy(bar, sizeof bar -1);   std::cout<< bar <<'\n';// bar 需要是空终止的}

输出:

WIN

[编辑]缺陷报告

下列更改行为的缺陷报告追溯地应用于以前出版的 C++ 标准。

缺陷报告 应用于 出版时的行为 正确行为
LWG 847 C++98 没有异常安全保证 添加强异常安全保证

[编辑]参阅

返回子串
(公开成员函数)[编辑]
复制字符
(std::basic_string_view<CharT,Traits> 的公开成员函数)[编辑]
复制范围中元素到新位置
(函数模板)[编辑]
复制一个缓冲区到另一个
(函数)[编辑]
close