以下就是string類的模擬實現:
測試環境為vs2013
#define _crt_secure_no_warnings 1
#include
#include
#include
using namespace std;
class string
//拷貝建構函式
string
(const string& s)
:_str
(new char
[strlen
(s._str +1)
])//賦值運算子過載
string& operator=
(const string&s)
return
*this;
}//operator過載,可讀可寫介面
char
& operator[
](size_t pos)
//const介面
const
char
& operator[
](size_t pos)
const
//迭代器
iterator begin()
iterator end()
const iterator begin()
const
const iterator end()
const
size_t size()
const
//析構函式
~string()
}const
char
*c_str()
const
//只增容,不減少容量,拷貝原有內容,釋放原有空間
void
reserve
(size_t n)
}//尾插
void
pushback
(char c)
_str[_size]
= c;
_size++
; _str[_size]
='\0';}
//尾刪
void
popback()
}void
resize
(size_t n,
char c)
if(n > _size)
// _size < n <= _capacity
_size = n;
_str[_size]
='\0';}
//刪除
void
erase
(size_t pos, size_t len)
else
_size -
= len;}}
//追加
void
(const
char
* str)
strcpy
(_str + _size, str)
; _size +
= sz;
}//插入字元
void
insert
(size_t pos,
char c)
//元素依次向後移動,留出位置
size_t end = _size;
for(size_t i = end; i >= pos; i--
) _str[pos]
= c;
_size++
; _str[_size]
='\0';}
//插入字串
void
insert
(size_t pos,
const
char
* str)
size_t end = _size + len;
while
(end > pos+len-1)
while
(*str)
_size +
= len;
}//查詢字元
size_t find_ch
(char c)
}return npos;
//return -1;
}//查詢字串
size_t find_str
(size_t pos,
char
* str)
else
return npos;
} string& operator+=(
char c)
string& operator+=(
const
char
* str)
string& operator+=(
const string&s)};
const size_t string:
:npos =-1
;//輸出運算子過載
ostream& operator<<
(ostream& _cout,
const string&s)
//普通列印
void
print_string
(const string&s)
cout << endl;
}//用迭代器來列印
void
print_string_iterator
(const string& s)
cout << endl;
}void
test1()
intmain()
模擬實現string類 c
include include using namespace std class string string const string m 拷貝建構函式 string 析構函式 string operator string m1 賦值運算子過載 s new char strlen m1.s 1 s...
模擬實現string類
include using namespace std include class string string string a 2 為什麼要用 優點在哪 string void print string operator const string a string operator const s...
模擬實現string類
在c 中,string其實就是將字串封裝起來的類,呼叫類中的成員函式可以完成對類內的字串進行增刪查改,並且將操作符過載,可以更直觀的操作字串,省去了c語言中很多麻煩的操作,有現成的成員函式供我們使用。舉乙個簡單的例子 在c語言中要在一串字串的尾部拼接另乙個字串,我們需要做的事情就是定義兩個字串,要使...