string类的实现终极版
来源:互联网 发布:仿起点小说php源码 编辑:程序博客网 时间:2024/06/05 17:35
写时拷贝(COW)的实现:
#include<iostream>#include<cassert>using namespace std;class String{public:String(char *str=""):_str(new char[strlen(str)+sizeof(int)+1]){*(int*)_str=1;_str+=4;strcpy(_str,str);}String(const String& str):_str(str._str){++(*(int*)(_str-4));}~String(){if(_str!=NULL){if(--(*(int*)(_str-4))){delete[] (_str-4);}}}String& operator=(const String& str){if(this!=&str){if(--(*(int*)(_str-4))){delete[] (_str-4);}_str=str._str;++(*(int*)(_str-4));}return *this;}char& operator[](int index){assert(index>=0 && index<strlen(_str));_str[index]=*(_str+index);return _str[index];}friend ostream& operator<<(ostream& os,const String& str);private:char *_str;};ostream& operator<<(ostream& os,const String& str){cout<<str._str<<endl;return os;}int main(){//String s1("hello");String s2("abcdefg");cout<<s2;cout<<s2[0];getchar();//String s3=s2;//String s3(s2);return 0;}
本文出自 “七月朔风” 博客,请务必保留此出处http://luminous.blog.51cto.com/10797288/1749228
0 0
- string类的实现终极版
- String 类的终极理解
- Java 中String类的终极总结
- Java 中String类的终极总结
- Java 中String类的终极总结
- Java 中String类的终极总结
- SqlHelper类的终极版
- 通讯录终极版实现
- C#中string和String的区别【终极解释】
- string类的实现
- String类的实现
- String类的实现
- String类的实现
- String 类的实现
- String类的实现
- string类的实现
- String类的实现
- String类的实现
- 链表笔试题汇编(三)
- 链表笔试题汇编(四)
- 利用C++日期类实现简单的日期计算器
- string类的实现
- string类的实现加强版
- string类的实现终极版
- 利用C++类实现顺序表
- C++实现单链表
- IT忍者神龟之基于cookie的WEB自动登陆功能设计和账户安全性
- 链表笔试题汇编(五)
- 智能指针的简单剖析和实现
- 应用栈求解迷宫问题(C++实现)
- Hadoop的hdfs-site.xml配置描述
- 一个数组实现两个栈