動態陣列類模板
#include
using
namespace std;
template
<
class
t>
class
dynamicarray
//給定陣列長度構造動態陣列
dynamicarray
(size_t capacity)
//從陣列中構造動態陣列
dynamicarray
(t arr[
], size_t size)
}//拷貝建構函式
dynamicarray
(const dynamicarray &rhs)
}//複製運算子
dynamicarray &
operator=(
const dynamicarray &arr)
}//析構函式,釋放記憶體
~dynamicarray()
//檢查動態陣列容量,如果陣列長度》=陣列容量,重新分配記憶體空間,並將原始資料複製到新空間,通常新的容量是原來的容量的2倍
void
check_capacity()
delete
data_;
data_ = temp;
}//陣列末尾新增乙個元素,新增元素之前應該檢查陣列容量是否足夠
void
push_back
(const t &item)
data_[size_]
= item;
size_++;}
//刪除最後乙個元素,只需將陣列長度減一即可
void
pop_back()
}//在pos位置插入元素,插入元素之前應該檢查陣列容量是否足夠
void
insert
(size_t pos,
const t &item)
for(
int i =
this
->size_ -1;
(int
)i >=
(int
)pos; i--
) data_[pos]
= item;
size_++;}
//返回陣列長度
size_t size()
const
//返回陣列容量
size_t capacity()
const
//下標運算子過載,返回pos位置的元素
t &operator
(size_t pos)
private
: t *data_;
//資料指標
size_t capacity_;
//動態陣列容量
size_t size_;
//動態陣列長度};
intmain()
; dynamicarray<
int>
a3(b,4)
; dynamicarray<
int> a4 = a3;
printf
("a3\n");
for(
int i =
0; i < a3.
size()
;++i)
printf
("\n");
printf
("a3.push_back(5);\n");
a3.push_back(5
);for(
int i =
0; i < a3.
size()
;++i)
printf
("\n\n");
printf
("a4\n");
for(
int i =
0; i < a4.
size()
;++i)
printf
("\n");
printf
("a4.pop_back();\n");
a4.pop_back()
;for
(int i =
0; i < a4.
size()
;++i)
printf
("\n\n");
printf
("a1\n");
for(
int i =
0; i < a1.
size()
;++i)
printf
("\n");
printf
("a1.insert(0,99);\n");
a1.insert(0
,99);
for(
int i =
0; i < a1.
size()
;++i)
printf
("\n\n");
}
C 模板練習
總時間限制 1000ms 記憶體限制 65536kb 在此處補充你的 描述 程式填空,輸出指定結果 include include include include using namespace std template struct closer int distance1 int n1,int ...
C 模板程式設計練習
填寫模板 printarray,使得程式輸出結果是 tomjackmaryjohn 10 不得編寫sumarray函式 include include using namespace std template t sumarray 在此處補充你的 int main cout sumarray arr...
C 演算法練習二
1.使用者輸入三個字串,用倒序輸出使用者輸入的字串 public void method console.readkey 2.使用者輸入乙個數字和乙個寬度,寬度也是乙個正整數,然後用第乙個數字列印出乙個直角等腰三角形 public void method int digit,int width co...