在 C++ 中,可以使用 std::vector
來實現(xiàn)結(jié)構(gòu)體數(shù)組的動態(tài)擴容。std::vector
是一個可自動調(diào)整大小的模板類,它包含了一個動態(tài)數(shù)組,并提供了一些方法來操作這個數(shù)組。
首先,需要包頭文件。然后,創(chuàng)建一個
std::vector,其元素類型為你的結(jié)構(gòu)體類型。當需要添加新元素時,可以使用
push_back() 方法將新元素添加到向量的末尾。
std::vector` 會在需要時自動擴展其內(nèi)部數(shù)組以適應(yīng)新元素。
下面是一個簡單的例子:
#include<iostream>
#include<vector>
struct MyStruct {
int a;
float b;
};
int main() {
// 創(chuàng)建一個空的 std::vector,元素類型為 MyStruct
std::vector<MyStruct> myVector;
// 添加新元素
for (int i = 0; i < 10; ++i) {
MyStruct newElement;
newElement.a = i;
newElement.b = i * 0.5f;
myVector.push_back(newElement);
}
// 輸出向量中的所有元素
for (const auto &element : myVector) {
std::cout << "a: "<< element.a << ", b: "<< element.b<< std::endl;
}
return 0;
}
在這個例子中,我們定義了一個名為 MyStruct
的結(jié)構(gòu)體,并創(chuàng)建了一個名為 myVector
的 std::vector
。然后,我們添加了 10 個新元素到向量中,并在最后遍歷并輸出了向量中的所有元素。
注意,std::vector
會自動處理內(nèi)存分配和擴展,因此你不需要手動管理內(nèi)存。當向量需要更多空間時,它會重新分配一個更大的內(nèi)存塊,并將舊元素復(fù)制到新內(nèi)存塊中。這種自動擴展的行為使得使用 std::vector
非常方便。