版本一:
int型別,只有建構函式和析構函式
class
sstack
~sstack()
void
push
(int x)
_p[_size++
]=x;
}int
pop(
)return _p[
--_size];}
inttop()
return _p[_size-1]
;}bool
empty()
intsize()
private
:int
*_p;
int _size;
int _cap;
void
resize()
delete
_p;_p=p1;
_cap*=2
;}};
intmian()
版本二:拷貝建構函式+拷貝賦值建構函式
class
sstack
~sstack()
//拷貝構造和拷貝賦值
sstack
(const sstack &ss)
} sstack&
operator=(
const sstack&ss)
delete
_p;
_p=newint
[ss._cap]
; _cap=ss._cap;
_size=ss._size;
for(
int i=
0;i<_size;i++
)return
*this
;//拷貝賦值運算子返回的時候,return的時候,會return *this 。
}void
push
(int x)
_p[_size++
]=x;
}int
pop(
)return _p[
--_size];}
inttop()
return _p[_size-1]
;}bool
empty()
intsize()
private
:int
*_p;
int _size;
int _cap;
void
resize()
delete
_p;_p=p1;
_cap*=2
;}};
1.29練習
#include
using
namespace std;
class
sstack
~sstack()
sstack
(const sstack&rhs)
} sstack&
operator=(
const sstack&rhs)
return
*this;}
inttop()
intpush
(int x)
_p[_siz++
]=x;
}int
pop(
)int
size()
private
:int _cap;
int _siz;
int* _p;
void
resize()
delete
_p;_p=p;}}
;int
main()
C 實現順序棧
vs2013下實現 include include using namespace std const int stacksize 20 templateclass stack 建構函式,初始化乙個空棧 stack t a,int n 含參建構函式 stack const stack otherst...
C 順序棧實現
模板類檔案位置 宣告和定義均要在標頭檔案中進行,否則會出現鏈結錯誤,不可只在標頭檔案宣告,在cpp檔案中定義 環境vs2019 模板類中的友元函式宣告 在類內宣告友元函式時,需要在上面加上 模板頭 template,否則會報錯,具體原因 建構函式中使用return 不影響結果,貌似是這樣,在我這個例...
順序棧之C 實現
順序棧就是用順序表 陣列 實現的棧。其組織形式如下圖所示 下面介紹下我用c 實現的順序棧,在vc6下除錯通過。不足之處還請指正。1 檔案組織 2 ss.h棧類的宣告及巨集的定義 ifndef ss h define ss h typedef int datatype define maxsize 1...