阅读量:0
在 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
非常方便。