C 模板練習 二

2021-10-11 03:17:50 字數 2497 閱讀 5315

動態陣列類模板

#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...