C++ "push", "push_back" 차이

오현진·2024년 7월 5일

C++ 

목록 보기
21/26

push 함수와 push_back 함수는 서로 다른 컨테이너에서 사용되며, 목적도 약간 다릅니다.

  • push 함수:
    - 주로 std::stack, std::queue와 같은 컨테이너 어댑터에서 사용됩니다.
    - 요소를 컨테이너의 "top" 또는 "back"에 추가합니다.
    - 예: stack.push(value); 또는 queue.push(value);
  • push_back 함수:
    • std::vector, std::deque, std::list와 같은 시퀀스 컨테이너에서 사용됩니다.
    • 요소를 컨테이너의 끝에 추가합니다.
    • 예: vector.push_back(value); 또는 list.push_back(value);
  • 주요 차이점:

    • 사용되는 컨테이너: push는 주로 스택이나 큐에서, push_back은 벡터, 데크, 리스트 등에서 사용됩니다.
    • 의미적 차이: push는 "맨 위에 추가"라는 의미가 강하고, push_back은 "끝에 추가"라는 의미입니다.
      가용성: push_back은 더 많은 컨테이너에서 사용 가능합니다.
  • 예시 코드:

#include <stack>
#include <queue>
#include <vector>

int main() {
    std::stack<int> s;
    s.push(10);  // 스택에 10을 추가

    std::queue<int> q;
    q.push(20);  // 큐에 20을 추가

    std::vector<int> v;
    v.push_back(30);  // 벡터의 끝에 30을 추가

    return 0;
}

실제로 std::stack과 std::queue는 내부적으로 다른 컨테이너(기본적으로 std::deque)를 사용하며, 그 컨테이너의 push_back 또는 push_front를 호출하여 push 동작을 구현합니다.

0개의 댓글