首頁  >  文章  >  後端開發  >  如何使用 C++ STL 實現資料結構的動態大小調整?

如何使用 C++ STL 實現資料結構的動態大小調整?

王林
王林原創
2024-06-04 18:05:00753瀏覽

是的,使用 C++ STL 容器可以實現資料結構的動態大小調整。容器可以自動增減大小,無需手動分配記憶體。具體步驟:使用 std::vector 建立動態數組。使用 std::deque 建立雙端佇列。使用 std::list 建立鍊錶。

如何使用 C++ STL 实现数据结构的动态大小调整?

如何使用 C++ STL 實作資料結構的動態大小調整?

C++ 標準範本庫 (STL) 提供了一系列強大的資料結構容器,可協助我們在程式中有效地儲存和管理資料。這些容器的一個關鍵特性是能夠動態調整其大小,以適應資料量的變化,而無需手動重新分配記憶體。

使用std::vector 實作動態陣列

#std::vector 是一個動態陣列容器,它將在需要時自動增加或減少其容量。

#include <vector>

std::vector<int> myVector;

// 添加元素
myVector.push_back(1);
myVector.push_back(2);

// 访问元素
std::cout << myVector[0] << std::endl; // 输出:1

// 动态调整大小
myVector.pop_back(); // 删除最后一个元素
myVector.resize(5, 0); // 调整大小为 5,并用 0 填充新元素

使用std::deque 實作雙端佇列

std::deque 是一個雙端佇列容器,它允許在佇列的頭部或尾部有效率地新增和刪除元素。

#include <deque>

std::deque<int> myDeque;

// 添加元素
myDeque.push_front(1); // 在头部添加元素
myDeque.push_back(2); // 在尾部添加元素

// 访问元素
std::cout << myDeque.front() << std::endl; // 输出:1

// 动态调整大小
myDeque.pop_front(); // 删除头部元素
myDeque.resize(5, 0); // 调整大小为 5,并用 0 填充新元素

使用std::list 實作鍊錶

std::list 是一個雙向鍊錶容器,它可以在O(1) 時間複雜度內插入和刪除元素。

#include <list>

std::list<int> myList;

// 添加元素
myList.push_front(1);
myList.push_back(2);

// 访问元素
auto it = myList.begin();
std::cout << *it << std::endl; // 输出:1

// 动态调整大小
myList.pop_back(); // 删除尾部元素
myList.resize(5, 0); // 调整大小为 5,并用 0 填充新元素

實戰案例:動態調整大小的陣列

假設我們有一個程式需要處理不確定數量的輸入值。我們可以使用 std::vector 來建立一個動態調整大小的陣列來儲存這些輸入。

#include <vector>
#include <iostream>

int main() {
  std::vector<int> inputValues;

  // 读取输入值并添加到数组中
  int value;
  while (std::cin >> value) {
    inputValues.push_back(value);
  }

  // 处理输入值中的数据......

  return 0;
}

透過使用 STL 的動態大小調整功能,我們可以編寫簡潔、高效的 C++ 程序,輕鬆滿足程式中資料結構的可擴展性需求。

以上是如何使用 C++ STL 實現資料結構的動態大小調整?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn