概述
assign:原字符串清空,赋予新的值作替换,返回类型为 string类型的引用。
一、常用重载如下:
a. string& assign ( const string& str );将str替换原字串的内容
举例:
string testassign = "Hello World";
testassign.assign("go home");
cout<<testassign<<endl;
//打印结果为 go home
b. string& assign ( const string& str, size_t pos, size_t n );将str的内容从位置pos起的n个字符作为原字串的新内容赋给原字串
string testassign = "Hello World";
testassign.assign("Come on!", 5, 2);
cout<<testassign<<endl;
//打印结果为 on
c. string& assign ( const char* s, size_t n );将字符数组或者字符串的首n个字符替换原字符串内容
举例:
string testassign = "Hello World";
testassign.assign("go back to China", 7);
cout<<testassign<<endl;
//打印结果为go back
d. string& assign ( const char* s );将字符串或者字符数组作为新内容替换原字串
举例:
string testassign = "Hello World";
char ch[20] = "go back to shanghai";
testassign.assign(ch);
cout<<testassign<<endl;
//打印结果为 go back to shanghai
e. string& assign ( size_t n, char c );将原字串替换为n个字符c
举例:
string testassign = "Hello World";
char ch = '?';
testassign.assign(5, ch);
cout<<testassign<<endl;
//打印结果为?????
f. template <class InputIterator> string& assign ( InputIterator first, InputIterator last );
需要include <iterator>
举例:
string testassign = "Hello World";
testassign.assign(istream_iterator<char>(cin), istream_iterator<char>());
//输入abcde
cout<<testassign<<endl;
//打印结果为 abcde
二、使用assign(仅顺序容器)
赋值运算符要求左边和右边的运算对象具有相同的类型;
顺序容器(array除外)定义一个assign成员,允许我们从一个不同但相容的类型赋值,或者从容器的一个子序列赋值。assign操作用参数所指定的元素替换左边容器中的所有元素。
代码示例:
(1) list<string>names;
vector<const char*>oldstyle;
names=oldstyle;//错误,容器类型不匹配;赋值操作无法完成
names.assign(oldstyle.cbegin(),oldstyle.cend() );
此段代码实现将names中的元素替换为迭代器指定的范围中的元素的拷贝,assign的参数决定了容器中将有多少个元素以及元素的值都是什么。
(2) //等价于slist1.clear();
//后跟slist1.insert(slist1.begin(),10,"hiya!");
list<string>slist1(1);//一个元素,为空string
slist1.assign(10,"hiya!"); //10个元素,每个元素都是"hiya!"
此段代码是assign的第二个版本接受一个整型值和一个元素值,它用指定数目并且具有相同给定值的元素替换容器中原有的元素;
容器赋值运算
assign操作不适用于关联容器和array
seq.assign(b,e) //将seq中的元素替换为迭代器b和e所表示范围内的元素,迭代器b和e不能指向seq中的元素
seq.assign(il) //将seq中的元素替换为初始化列表il中的元素
seq.assign(n,t) //将seq中的元素替换为n个值为t的元素
最后
以上就是苗条绿茶为你收集整理的assign的使用的全部内容,希望文章能够帮你解决assign的使用所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复