如何在C++中實(shí)現(xiàn)buffer的動(dòng)態(tài)擴(kuò)容

c++
小樊
88
2024-08-07 19:58:22

在C++中實(shí)現(xiàn)buffer的動(dòng)態(tài)擴(kuò)容通常可以使用動(dòng)態(tài)數(shù)組或者使用STL中的vector容器來(lái)實(shí)現(xiàn)。以下是使用vector容器的示例:

#include <iostream>
#include <vector>

int main() {
    std::vector<int> buffer;
    int capacity = 10; // 初始容量

    // 添加元素到buffer
    for (int i = 0; i < capacity; i++) {
        buffer.push_back(i);
    }

    // 打印buffer的容量和大小
    std::cout << "Buffer capacity: " << buffer.capacity() << std::endl;
    std::cout << "Buffer size: " << buffer.size() << std::endl;

    // 動(dòng)態(tài)擴(kuò)容
    buffer.reserve(20); // 設(shè)置新的容量

    // 添加更多元素到buffer
    for (int i = capacity; i < 20; i++) {
        buffer.push_back(i);
    }

    // 打印擴(kuò)容后的buffer容量和大小
    std::cout << "Buffer capacity after resizing: " << buffer.capacity() << std::endl;
    std::cout << "Buffer size after resizing: " << buffer.size() << std::endl;

    return 0;
}

在上面的示例中,我們使用了vector容器來(lái)實(shí)現(xiàn)buffer的動(dòng)態(tài)擴(kuò)容。首先,我們?cè)O(shè)置了初始容量為10,并向buffer中添加10個(gè)元素。然后,我們使用reserve函數(shù)設(shè)置了新的容量為20,并在buffer中添加更多元素。最后,我們打印了擴(kuò)容后的buffer容量和大小。

0