公共静态成员函数
<string>

std::char_traits::move

static char_type* move (char_type* dest, const char_type* src, size_t n);
移动字符序列
src指向的n个字符的序列复制到dest指向的数组,即使范围重叠。

所有字符特征类型都应实现该函数,就像使用成员赋值分配单个字符一样。

参数

dest
指向写入复制字符的数组的指针。
src
指向包含要复制的n个字符的数组的指针。
n
要复制的字符数。

请注意,该函数将认为destsrc序列的长度均为n个字符,而不管它们是否包含空字符。
成员类型char_type字符类型(即,char_traits 中的类模板参数)。
size_t 是一个无符号整数类型。

返回值

返回dest

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
// char_traits::move
#include <iostream>   // std::cout
#include <string>     // std::char_traits

int main ()
{
  char foo[] = "---o............";
  std::cout << foo << '\n';
  std::char_traits<char>::move (foo+3,foo,4);
  std::cout << foo << '\n';
  std::char_traits<char>::move (foo+6,foo,7);
  std::cout << foo << '\n';
  return 0;
}

输出
---o............
------o.........
------------o...


复杂度

n成线性关系。

异常安全

除非destsrc未指向足够长的数组,否则此成员函数永远不会在任何标准专业化中引发异常(无抛出保证)。
否则,将导致未定义行为

另见