您的位置:首页 > 编程语言 > C语言/C++

c/c++中string类型的构造

2014-04-28 12:01 295 查看
string是c++中常用到的类型,所以关于string的构造方法我们必须清楚:

在c++98中的构造函数有:

default (1)
string();

copy (2)
string (const string& str);

substring (3)
string (const string& str, size_t pos, size_t len = npos);

from c-string (4)
string (const char* s);

from sequence (5)
string (const char* s, size_t n);

fill (6)
string (size_t n, char c);

range (7)
template <class InputIterator>
string  (InputIterator first, InputIterator last);

在c++11中的构造函数有:

default (1)
string();

copy (2)
string (const string& str);

substring (3)
string (const string& str, size_t pos, size_t len = npos);

from c-string (4)
string (const char* s);

from buffer (5)
string (const char* s, size_t n);

fill (6)
string (size_t n, char c);

range (7)
template <class InputIterator>
string  (InputIterator first, InputIterator last);

initializer list (8)
string (initializer_list<char> il);

move (9)
string (string&& str) noexcept;

(1) 是默认构造函数

(2) 拷贝构造函数

(3) 子串构造

(4) 用s指向的字符指针构造,直到s的结束或者遇到null字符串结束,因为s中可能含有null字符,所以用这个有一定风险。

(5) 和4的功能差不多,但是5可以指定长度,这样就避免了null结束的问题

(6) 构造一个含有n个字符的字符串,每个字符都是c

(7)从InputIterator中拷贝【first,last)作为新的字符串,注意左闭右开的区间

(8) 和2类似

(9)注意有noexcept修饰
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  c++ string