c++中string的assign方法使用

string的实际.h和.cpp文件是basic_string.hbasic_string.tcc,所以string中assign也在这两个文件声明和定义;

1.assign的声明:

basic_string& assign(const basic_string& __str)
basic_string& assign(basic_string&& __str)
basic_string& assign(const basic_string& __str, size_type __pos, size_type __n)
basic_string& assign(const _CharT* __s, size_type __n)
basic_string& assign(const _CharT* __s)
basic_string& assign(size_type __n, _CharT __c)
basic_string& assign(_InputIterator __first, _InputIterator __last)
basic_string& assign(initializer_list<_CharT> __l) 

2.assign的一个定义:

其实string的赋值运算符basic_string& operator=(const basic_string& __str)就是调用了assign方法。赋值运算符就是简单的包装了assign方法:

basic_string&
operator=(const basic_string& __str)
{ return this->assign(__str); }

其中:basic_string& assign(const basic_string& __str)的定义:

basic_string&
assign(const basic_string& __str)
{this->_M_assign(__str);return *this;
}

所以:

string s1;
string s2;
s1=s2;
s1.assign(s2);是等效的

例子:

#include <iostream>
#include <string>
#include <vector>
using std::vector;
using std::string;
using std::cin;
using std::cout;
using std::endl;
void test01()
{string s1;//默认初始化,s1是一个空的字符串string s2(s1);//s2是s1的副本,使用了拷贝构造函数string s3 = s2;//s3是s2的副本,也就是s1的副本,使用赋值运算符string s4("4444");//s4是字面值"4444"的副本,除了最后一个字符string s5="5555";//拷贝初始化,同上string s6(4,'6');//初始化n个字符'6‘串成的字符串string s7 = string(4,'7');//拷贝初始化,同上s1.assign(s6);s2 = "2222";vector<string> vecStr{s1,s2,s3,s4,s5,s6,s7};for(const auto &value:vecStr){cout<<"sddress:"<<&value<<"  value:"<<value<<endl;}
}int main()
{::test01();return 0;
}

运行结果图:

c++中string的assign方法使用相关推荐

  1. javascript中对象的assign()方法

    javascript中对象的assign()方法 Object.assign() 方法用于将所有可枚举属性的值从一个或多个源对象复制到目标对象.它将返回目标对象. 语法: Object.assign( ...

  2. JAVA中String的split方法

    我的个人网站: http://riun.xyz 以下源码版本:JDK1.8 简介 Java 中 String 的 split 方法可以将字符串根据指定的间隔进行切割,例如字符串 str = " ...

  3. Java中String类的方法及说明

    String : 字符串类型 一.构造函数      String(byte[ ] bytes):通过byte数组构造字符串对象.      String(char[ ] value):通过char数 ...

  4. JavaScript中的Object.assign()方法

    目录 介绍 什么是Object.assign()? JavaScript可枚举属性 语法和参数 您可以使用Object.assign()方法做什么? 合并对象 克隆对象 关于Object.assign ...

  5. 【转载】Java中String类的方法及说明

    转载自:http://www.cnblogs.com/YSO1983/archive/2009/12/07/1618564.html String : 字符串类型 一.构造函数      String ...

  6. javascript中String的fromCharCode()方法

    前几天遇到一个bug,后端的模板引擎在输出形如: <div title="111 aaa">内容</div> 这样的内容时,无法输出' '空格,所以只能用' ...

  7. JDK8中String的intern()方法详细解读【内存图解+多种例子+1.1w字长文】

    文章目录 一.前言 二.图文理解String创建对象 1.例子一 2.例子二 3.例子三 4.例子四 5.例子五 6.例子六 三.深入理解intern()方法 1. 源码查看 2. 例子一 3. 例子 ...

  8. string类assign方法

    #include <string> #include <iostream> using namespace std; int main() { string str1c ( & ...

  9. Java中String类 compareTo()方法比较字符串详解

    中心:String 是字符串,它的比较用compareTo方法,它从第一位开始比较, 如果遇到不同的字符,则马上返回这两个字符的ascii值差值.返回值是int类型 1.当两个比较的字符串是英文且长度 ...

最新文章

  1. 安卓 java内存碎片_理解Android Java垃圾回收机制
  2. 如何在Git中克隆单个分支?
  3. (2)java基础继承
  4. 老鼠之Atlas之旅(一):Atlas官方站点
  5. fuse java_java中的Fuse文件系统 - JVM错误双重免费或损坏
  6. 几十万实例线上系统的抖动问题定位
  7. SAP CRM user参数CRM_UI_PROFILE是在哪行ABAP代码里读取的
  8. c语言求行列式的值原理,新手作品:行列式计算C语言版
  9. R语言向matlab转化,我有一段MATLAB的程序,现在想转换成R语言代码
  10. C语言:输入四个数a,b,c,d,将这四个数由小到大排序
  11. Storm实验 -- 单词计数2
  12. 《推荐系统实践》算法纯享(附代码链接)(一)—— 评价指标篇
  13. 计算机在酒店的应用ppt,计算机应用论文的专辑
  14. onblur()无限触发问题
  15. 近来比较有意思的新形式网络广告
  16. java对接微信支付收不到支付通知问题(亲身实践)
  17. Linux 格式化U盘为ext4格式
  18. 俄语语言文学类毕业论文文献包含哪些?
  19. 起重机和起重机的全球与中国市场2022-2028年:技术、参与者、趋势、市场规模及占有率研究报告
  20. Python数据驱动模块DDT

热门文章

  1. 度过有意义的生命--俞敏洪2009-06-02同济大学的演讲
  2. SitePoint播客#100直播!
  3. 弹子游戏linux实训
  4. 麦咖啡携手洗护品牌多芬发布“泡泡拿铁”;三星发布2亿像素传感器 | 美通社头条...
  5. 数据中台应用实战-数据中台建设四步方法论:采、存、通、用
  6. 数据结构课程设计---赛事统计,校园导航,算术表达式
  7. PyTorch学习笔记(21) ——损失函数
  8. 用cygwin从本地向ubuntu某路径下传文件时Permission denied解决方法
  9. 通过 叽歪 进行分类
  10. 【平面设计基础】12:ACR调色