构造函数 | 描述 |
string(const char*) | 将string对象初始化为s指向的NBTS(null-terminated string)即以空字符结束的传统C字符串 |
string(size_type n,char c) | 创建一个包含n个元素的string对象,其中每个元素都被初始化为字符c |
string(const string &str) | 将一个string对象初始化为string对象str(复制构造函数) |
string() | 创建一个默认的string对象,长度为0 |
string(const char *s,size_type n) | 将string对象初始化为s指向的NBTS的前n个字符,即使超过了NBTS的结尾 |
template string(Iter begin,Iter end) | 将string对象初始化为区间为区间[begin,end]内的字符,其中begin和end的行为就像指针,用于指定位置,范围包括begin在内,但不包括end |
string(const string &str,size_type pos,size_type n =npos) | 将一个string对象初始化为对象str中从位置pos开始到结尾的字符,或从位置pos开始的n个字符 |
string(string &&str)noexcept | 这是C++11新增的,它将一个string对象初始化为string对象str,并可能修改str(移动构造函数) |
string(initializer_list | 这是C++11新增的,它将一个string渡西iang初始化为初始列表il中的字符 |
将代码与输出贴在下边,
1.注意4使用了运算符重载.
2.第七个的第一个参数应该是const string &str,但是这里使用了char[],是自动进行了类型转换。
3.第六个,对于iter begin,iter end,这两个参数来说,可以直接用&给出地址,也可以使用数组名代表地址。
但是不能用对象名,比如string seven(five+6,five+10).因为对象名不被看作对象的地址,与数组不一样。
#include
#include
using namespace std;
void test_string();
int main() {
test_string();
return 0;
}
void test_string()
{
//1.
string one("aa");
cout<<"one is "<
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)