用vector實現乙個變長陣列

2022-03-31 13:20:24 字數 433 閱讀 2034

所謂陣列,有這樣的性質:

c語言中的陣列,一旦長度定義,就不能改變。有時候需要動態增加陣列長度,而且想保留上述性質,這時候就可以用vector。

vector模擬了c語言中陣列的操作,比如取值,下標越界未定義等。最重要的,它支援size()resize()方法,可以獲得陣列長度,以及擴充套件陣列長度。這樣就可以實現動態陣列了。

乙個**例子如:

void put_vec(std::vector&vec, size_t index, int value)

}

vec[index] = value;

}

這裡使用了乙個for迴圈來清零新分配的空間,實際上對於內建int型別,vector在resize後就已經把新空間清零了。因此這樣寫也是為了直觀性。

用 C 實現乙個變長陣列

我想用 c 的人都用過 std vector 它是乙個可變長的陣列,在很多時候都比 c 固有的定長陣列要靈活。c 裡沒有這樣的標準化設施,但是寫軟體的人通常都會實現乙個。正所謂,不厭其煩的重造輪子 d 這裡我們不討論造輪子的好壞問題,直接討論下實現這麼個東西的一點小技巧吧。總是固執於用誰做的輪子的問...

用陣列實現vector

include using namespace std 用陣列實現vector typedef int t class vector delete data data tmp capacity 2 public explicit vector int size 5 sz capacity size ...

專題 如何定義乙個可變長陣列?

與本文章無關的背景 就是想吐吐槽嘛 昨天刷codeup的時候,碰到字串的問題,就頭皮發麻,然後今天早上吃 老譚酸菜牛肉麵 譚浩強版c程式設計 的時候,翻到對於可變長陣列定義的方法。分割線 版權歸老譚擁有 首先,看一下像我這樣的小菜鳥一開始會這樣定義 int n scanf d n int a n 顯...