>  기사  >  백엔드 개발  >  C++ STL을 사용하여 데이터 구조의 동적 크기 조정을 구현하는 방법은 무엇입니까?

C++ STL을 사용하여 데이터 구조의 동적 크기 조정을 구현하는 방법은 무엇입니까?

王林
王林원래의
2024-06-04 18:05:00756검색

예, C++ STL 컨테이너를 사용하면 데이터 구조의 동적 크기 조정이 가능합니다. 컨테이너는 메모리를 수동으로 할당하지 않고도 자동으로 크기를 늘리거나 줄일 수 있습니다. 특정 단계: std::벡터를 사용하여 동적 배열을 만듭니다. deque를 생성하려면 std::deque를 사용하세요. 연결리스트를 생성하려면 std::list를 사용하세요.

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

C++ STL을 사용하여 데이터 구조의 동적 크기 조정을 구현하는 방법은 무엇입니까?

C++ 표준 템플릿 라이브러리(STL)는 프로그램에서 데이터를 효율적으로 저장하고 관리하는 데 도움이 되는 일련의 강력한 데이터 구조 컨테이너를 제공합니다. 이러한 컨테이너의 주요 기능은 메모리를 수동으로 재할당할 필요 없이 데이터 볼륨의 변화를 수용하기 위해 크기를 동적으로 조정하는 기능입니다.

std::벡터를 사용하여 동적 배열 구현

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::vectorstd::벡터는 필요할 때 자동으로 용량을 늘리거나 줄이는 동적 배열 컨테이너입니다.

#include <vector>
#include <iostream>

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

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

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

  return 0;
}

std::deque를 사용하여 이중 종료 대기열 구현

std::deque는 헤드 또는 테일 추가를 허용하는 deque 컨테이너입니다. 요소를 효율적으로 제거합니다. 🎜rrreee🎜std::list를 사용하여 연결 목록 구현🎜std::list는 이중 연결 목록 컨테이너이며 O(1 ) 시간 복잡도 요소를 삽입하고 삭제합니다. 🎜rrreee🎜실용 예: 동적으로 배열 크기 조정🎜불확실한 수의 입력 값을 처리해야 하는 프로그램이 있다고 가정해 보겠습니다. std::벡터를 사용하여 이러한 입력을 저장하기 위한 동적인 크기의 배열을 만들 수 있습니다. 🎜rrreee🎜STL의 동적 크기 조정 기능을 사용하면 프로그램 내 데이터 구조의 확장성 요구 사항을 쉽게 충족하는 간결하고 효율적인 C++ 프로그램을 작성할 수 있습니다. 🎜

위 내용은 C++ STL을 사용하여 데이터 구조의 동적 크기 조정을 구현하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.