본문 바로가기
  • 쓸쓸한 개발자의 공부방
C++

[C++] STL : stack, vector

by 심찬 2021. 8. 17.

 

다양한 STL 이 있지만 그 중 가장 많이 자주 사용하는 stack과 vector를 살펴 보겠습니다.!

 

STL - stack

 

STL (Standard Template Library) 은 C++에서 제공하는 표준 라이브러리 

 

#include <iostream>
#include <stack>     // stack 사용을 위해 해당 header추가 해야함.

int main()
{
    std::stack<int> s;    // 클래스 탬플릿으로 되어 있어 input type을 적어줘야 함.
    
    s.push(10);
    s.push(20);
    s.push(30);
    
    std::cout << s.top() << std::endl; // 30
    std::cout << s.top() << std::endl; // 30
    
    s.pop();
    std::cout << s.top() << std::endl; // 20
    
}

 

 

https://en.cppreference.com/w/cpp/container/stack

 

std::stack - cppreference.com

template<     class T,     class Container = std::deque > class stack; The std::stack class is a container adapter that gives the programmer the functionality of a stack - specifically, a LIFO (last-in, first-out) data structure. The class template act

en.cppreference.com

 

 


STL - vector

 

C배열의 단점은 크기 변경할 수 없다.

STL vector는 배열과 유사하게 연속된 메모리를 사용하는 컨테이너

배열과 동일하게 [] 연산 사용이 가능하다.

resize 멤버 함수를 통해 크기 조절이 가능하다.

 

#include <iostream>
#include <vector>

int main()
{
    //int x[10] = {1,2,3,4,5,6,7,8,9,10};
    
    //std::vector<int> x;
    //std::vector<int> x(10); // 
    
    std::vector<int> x = {1,2,3,4,5,6,7,8,9,10}; // 
    
    x[0] = 10;
    
    x.resize(20);
    
    for( int i = 0; i < x.size() ; i++)
        std::cout << x[i] << std::endl;    
}

 

https://en.cppreference.com/w/cpp/container/vector

 

std::vector - cppreference.com

template<     class T,     class Allocator = std::allocator > class vector; (1) (2) (since C++17) 1) std::vector is a sequence container that encapsulates dynamic size arrays. The elements are stored contiguously, which means that elements can be acces

en.cppreference.com

 

 

 

댓글