[問題] 請問stack實作的幾個問題
開發平台(Platform): (Ex: VC++, GCC, Linux, ...)
Linux
問題(Question):
想以class實作一個stack功能
除了基本的push, pop和取值之外
使用動態記憶體配置stack,加上了動態調整stack大小的功能
(push後資料量到達stack容量上限,則將容量*2)
(pop後資料量剩下stack容量上限的一半,則將容量/2)
code如下:
main.cpp http://codepad.org/KS4171zs
stack.cpp http://codepad.org/c7F7AfHQ
stack.h http://codepad.org/gZiF7t0L
想請問
1. stack.h中的line 47,為何要用int *&iContainer?
2. 一樣是stack.h中的line 47
ChangeCapacity這支function裡,是先把舊空間的資料移到新空間,再把舊空間刪掉,
然後指到新空間。請問有更快速或簡潔的方法嗎?(例如可以省掉搬資料的動作)
3. stack.h中,class member function的定義前面沒有加inline則會出現
multiple definition的錯誤。
雖然main.cpp和stack.cpp都有#include "stack.h",
想請問已經有加上
#ifndef _STACK_H_
#define _STACK_H_
這樣不是應該要能避掉multiple definition的錯誤了嗎?是我哪裡弄錯了嗎? @_@
麻煩大家幫忙解惑一下
感恩
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 180.176.221.68
→
12/19 01:27, , 1F
12/19 01:27, 1F
→
12/19 01:29, , 2F
12/19 01:29, 2F
→
12/19 01:29, , 3F
12/19 01:29, 3F
→
12/19 01:31, , 4F
12/19 01:31, 4F
推
12/19 10:02, , 5F
12/19 10:02, 5F
→
12/19 10:03, , 6F
12/19 10:03, 6F
→
12/19 20:47, , 7F
12/19 20:47, 7F
→
12/19 20:48, , 8F
12/19 20:48, 8F
→
12/19 20:48, , 9F
12/19 20:48, 9F
→
12/19 22:25, , 10F
12/19 22:25, 10F
→
12/19 22:32, , 11F
12/19 22:32, 11F
→
12/20 16:52, , 12F
12/20 16:52, 12F
→
12/20 16:52, , 13F
12/20 16:52, 13F
→
12/20 20:17, , 14F
12/20 20:17, 14F
→
12/20 21:21, , 15F
12/20 21:21, 15F