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

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修饰

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值