class
string
//放n個字元ch的元素(構造)
string
(size_t n,
char ch)
:_str
(new
char
[n+1])
,_size
(n),
_capacity
(n)//拷貝建構函式
string
(const string& s)
:_size
(s._size)
,_capacity
(s._size)
//賦值運算子過載
string&
operator=(
const string& s)
return
*this;}
//析構函式
~string()
}//iterator迭代器
iterator begin()
iterator end()
//modify
//插入元素
void
pushback
(char c)
//+=過載
//追加單個字元
string&
operator+=
(char ch)
//追加字串
string&
operator+=
(const
char
* str)
strcat
(_str, str)
; _size = newsize;
return
*this;}
//+=乙個類型別物件
string&
operator+=
(const string& s)
//清除
void
clear()
//交換
void
swap
(string& s)
//acess
//下標運算子過載,訪問任意位置元素
char
&operator
(size_t index)
//const型別下標運算子過載,訪問任意位置元素
const
char
&operator
(size_t index)
const
//capacity
//有多少個有效字元
size_t size()
const
//底層容量的大小
size_t capacity()
const
//判斷string是不是空
bool
empty()
const
//改變當前string類的有效元素個數
void
resize
(size_t newsize,
char ch =
char()
)memset
(_str + _size, ch, newsize - oldsize);}
_size = newsize;
_str[_size]
='\0';}
//擴容
void
reserve
(size_t newcapacity)
}//獲取c格式的字串
const
char
*c_str()
const
//從頭開始查詢元素
size_t find
(char ch)
return npos;
}//從後面開始查詢元素
size_t rfind
(char ch)
return npos;
}//獲取子串
string substr
(size_t pos =
0, size_t n = npos)
friend ostream&
operator
<<
(ostream&_cout,
const string& s)
private
:char
* _str;
size_t _capacity;
size_t _size;
static size_t npos;};
size_t string::npos =
0;
測試:
void
testbitstring()
cout << endl;
//範圍for
for(
auto ch : s1)
cout << ch <<
" ";
cout << endl;
}
模擬實現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語言中要在一串字串的尾部拼接另乙個字串,我們需要做的事情就是定義兩個字串,要使...
string類模擬實現
define crt secure no warnings include include using namespace std class string iterator end const iterator begin const const iterator end const 無參建構函式...