在 C++ 中,可以使用 std::vector
來實現結構體數組的動態擴容。std::vector
是一個可自動調整大小的模板類,它包含了一個動態數組,并提供了一些方法來操作這個數組。
首先,需要包頭文件。然后,創建一個
std::vector,其元素類型為你的結構體類型。當需要添加新元素時,可以使用
push_back() 方法將新元素添加到向量的末尾。
std::vector` 會在需要時自動擴展其內部數組以適應新元素。
下面是一個簡單的例子:
#include<iostream>
#include<vector>
struct MyStruct {
int a;
float b;
};
int main() {
// 創建一個空的 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
的結構體,并創建了一個名為 myVector
的 std::vector
。然后,我們添加了 10 個新元素到向量中,并在最后遍歷并輸出了向量中的所有元素。
注意,std::vector
會自動處理內存分配和擴展,因此你不需要手動管理內存。當向量需要更多空間時,它會重新分配一個更大的內存塊,并將舊元素復制到新內存塊中。這種自動擴展的行為使得使用 std::vector
非常方便。