>백엔드 개발 >C++ >C++ 함수 라이브러리의 일반적인 데이터 구조는 무엇입니까?

C++ 함수 라이브러리의 일반적인 데이터 구조는 무엇입니까?

WBOY
WBOY원래의
2024-04-18 22:09:01482검색

C++ 표준 함수 라이브러리는 일반적으로 사용되는 다음과 같은 데이터 구조를 제공합니다. 배열: 연속 메모리 블록, 인덱스별로 요소에 액세스합니다. 벡터: 자동으로 확장/축소되는 동적인 크기의 배열로, 효율적인 삽입/삭제/임의 액세스를 제공합니다. 연결 목록(Linked list): 요소가 동적으로 할당된 노드에 저장되는 선형 데이터 구조로, 각 노드에는 데이터와 다음 노드에 대한 포인터가 포함됩니다. 스택: push()를 통해 요소가 맨 위에 추가되고 pop()을 통해 제거되는 LIFO(후입선출) 데이터 구조입니다. Queue: 요소가 enqueque()를 통해 끝에 추가되고 dequeue()를 통해 삭제되는 FIFO(선입선출) 데이터 구조입니다.

C++ 函数库中有哪些常见的数据结构?

C++ 함수 라이브러리의 공통 데이터 구조

C++ 표준 함수 라이브러리에는 데이터의 효율적인 관리 및 처리를 위해 많은 공통 데이터 구조가 제공됩니다. 이러한 데이터 구조를 이해하는 것은 프로그래밍에서 데이터를 효율적으로 구성하고 검색하는 데 도움이 되므로 중요합니다.

1. 배열

배열은 동일한 데이터 유형의 데이터 요소를 저장하는 데 사용되는 연속 메모리 블록입니다. 0부터 시작하여 인덱스별로 요소에 액세스합니다. 배열은 다음과 같이 선언되고 초기화됩니다.

int arr[5] = {1, 2, 3, 4, 5};

2. 벡터

벡터는 요소를 수용하기 위해 자동으로 확장 및 축소될 수 있는 동적인 크기의 배열입니다. 효율적인 삽입, 삭제 및 임의 액세스 작업을 제공합니다. 벡터는 다음과 같이 선언됩니다.

vector<int> v = {1, 2, 3, 4, 5};

3. 연결 목록

연결 목록은 노드라고 하는 동적으로 할당된 메모리 블록에 데이터 요소가 저장되는 선형 데이터 구조입니다. 각 노드에는 데이터와 다음 노드에 대한 포인터가 포함되어 있습니다. 연결 목록은 유연하고 메모리 효율적인 데이터 구조를 만드는 데 사용됩니다.

struct Node {
  int data;
  Node* next;
};

Node* head = new Node{1, nullptr};
head->next = new Node{2, nullptr};

4. Stack

스택은 LIFO(후입선출) 데이터 구조입니다. push() 작업을 사용하여 스택 상단에 요소를 추가하고 pop() 작업을 사용하여 스택 상단에서 요소를 제거합니다. 스택은 함수 호출 및 지역 변수를 관리하는 데 사용됩니다.

stack<int> s;
s.push(1);
s.push(2);
cout << s.top() << endl; // 2
s.pop();

5. 큐

큐는 FIFO(선입선출) 데이터 구조입니다. 요소는 enqueque() 작업을 사용하여 대기열의 꼬리에 추가되고 dequeue() 작업을 사용하여 대기열의 헤드에서 제거됩니다. 대기열은 프로세스 및 작업의 대기열을 관리하는 데 사용됩니다.

queue<int> q;
q.push(1);
q.push(2);
cout << q.front() << endl; // 1
q.pop();

실용 사례: 벡터를 사용하여 학생 성적 저장

#include <vector>

int main() {
  // 创建一个向量来存储学生成绩
  vector<double> grades;

  // 添加学生成绩
  grades.push_back(90.5);
  grades.push_back(85.0);
  grades.push_back(78.2);

  // 计算平均成绩
  double sum = 0;
  for (double grade : grades) {
    sum += grade;
  }
  double average = sum / grades.size();

  // 输出平均成绩
  cout << "平均成绩:" << average << endl;

  return 0;
}

위 내용은 C++ 함수 라이브러리의 일반적인 데이터 구조는 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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