所謂陣列,有這樣的性質:
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 顯...