String的实现需要注意的是String的拷贝构造。它的拷贝构造有深拷贝和浅拷贝之分。我们先来用浅拷贝实现StringclassString
{
public:
String()
{
str=newchar(‘A‘);
}
String(char*s)
{
str=newchar[strlen(s)+1];
if(str!=NULL)
{
strcpy(str,s);
}
}
Stri..
分类:
编程语言 时间:
2016-04-07 01:49:37
阅读次数:
294
简单实现string类,正确管理资源。1、首先定义它的成员变量:private:
char*_data;//定义一个字符指针2、实现它的构造函数:String(constchar*str="")//如果定义对象时没有传参数,使用缺省构造参数构造出""字符串
:_data(newchar[strlen(str)+1])//+1表示多创建一个空间存‘\0‘..
分类:
其他好文 时间:
2016-04-05 14:15:46
阅读次数:
192
string类的默认成员函数、增删查改实现#include<iostream>
#include<assert.h>
usingnamespacestd;
classString
{
public:
String(char*_str="")
//:p_str((char*)malloc(strlen(_str)+1))
//效果一样,但之前没考虑清楚,误打误撞对了,没注意,开辟空间应于_c..
分类:
其他好文 时间:
2016-03-24 16:39:23
阅读次数:
221
先用上面的一张图说明逻辑,这就是递归的逻辑。xy排序就相当于在x的空位插上y,x只有两个空位,y插前面得带yx,y插后面得到xyxyz排序就相当于在xy排序的所有结果插上z,结果如图代码实现如下publicstaticvoidmain(String[]args){
List<String>list=sort("xy","k");
f..
分类:
编程语言 时间:
2016-03-23 20:15:32
阅读次数:
264
深拷贝实现string类#define_CRT_SECURE_NO_WARNING1
#include<iostream>
#include<string>
usingnamespacestd;
classString
{
public:
friendostream&operator<<(ostream&os,String&str);
friendStringoperator+(constString&str1,constStri..
分类:
编程语言 时间:
2016-03-20 02:25:53
阅读次数:
692
string的第一种实现方法:#include<iostream>
usingnamespacestd;
classString
{
public:
String(char*str="")//构造函数
:_str(newchar[strlen(str)+1])
{
strcpy(_str,str);
}
String(constString&str)//拷贝构造函数,实现深拷贝
:_str(newchar[strlen(str._str)+..
分类:
其他好文 时间:
2016-03-12 14:53:44
阅读次数:
236
string类写法一:classString
{
public:
String()//构造函数,当str为空字符串时
{
_str=newchar[1];
*_str=‘\0‘;
cout<<"string()"<<endl;
}
String(char*str)//构造函数
:_str(newchar[strlen(str+1)])//strlen求字符串大小,不包括‘\0’,故+1留下/..
分类:
其他好文 时间:
2016-03-11 19:07:57
阅读次数:
179
要写string的函数,首先就是创建一个string的类,在实现string类的过程中一直不断优化,以减少代码量和考虑不周的问题,首先我先给出刚开始的经典写法经典解法(初级程序员适用)classString{public: String(constchar*str="")://构造函数_str(newchar[strlen(_str)+1]) { str..
分类:
其他好文 时间:
2016-03-11 06:36:37
阅读次数:
233
1、传统的实现string类的方法优点:程序简单易懂缺点:1)在实现其拷贝构造和赋值的操作时多次的调用new动态的开辟空间,因此也需要多次的通过delete来释放空间。如果处理不当还容易造成内存泄漏。2)程序的一致性比较差#include<iostream>
#include<string>
using..
分类:
编程语言 时间:
2016-03-10 02:00:43
阅读次数:
261
string类是c++默认提供的,但是了解string类的写法也是非常重要的,面试中有许多关于string类的题目,string类能够考察c++类和对象的掌握程度,一定程度上也考察了面试者的编程能力。下面是string类的一些基本功能,由于面试的时间很短,在这极短的时间内全部实现string类的功..
分类:
编程语言 时间:
2016-03-04 02:05:53
阅读次数:
227