完成功能
1.默认成员函数
2.重载比较运算符(<,<=,>,>=,==,!=)
3.运算符重载
4.追加一个字符的PushBack函数,追加一个字符串的Append函数
5.删除len长度的字符串 Erase函数
6.判断字符串的长度,并适当增容
7.插入一个字符,插入一个字符串 Insert函数
8.找一个字符,找一个字符串 Find函数
完整代码
#pragma once
#define _CRT_SECURE_NO_WARNINGS 1
#include<assert.h>
#include <cstring>
#include<iostream>
using namespace std;
namespace myString
{
class String
{
public:
typedef char* Iterator; //迭代器
Iterator begin()
{
return _str;
}
Iterator end()
{
return _str + _size;
}
String(const char* str = "") //默认构造
{
if (nullptr == str)
{
assert(false);
return;
}
_size = strlen(str);
_capacity = _size;
_str = new char[_capacity + 1];
strcpy(_str, str); //参数构造
}
String(const String& s) //拷贝构造
: _str(nullptr)
, _size(0)
, _capacity(0)
{
String tmp(s._str);
this->Swap(tmp);
}
void Swap(String& s) //交换对象
{
swap(_str, s._str);
swap(_size, s._size);
swap(_capacity, s._capacity);
}
String& operator=(String s) //赋值重载
{
this->Swap(s);
return *this;
}
~String() //析构函数
{
if (_str)
{
delete[]_str;
_size = 0;
_capacity = 0;
}
}
char* c_str()