본문 바로가기

백준일지14

[C++] STL 자료구조: Queue queue는 stack과 다르게 시작 지점에서 pop이 가능하고 마지막 위치에 push가 가능한 자료구조이다. queue는 들어온 순서대로 원소를 저장하고, 원소를 먼저 들어온 순서대로 꺼내야 할 때 주로 사용된다.큐는 한 쪽에선 원소를 넣고 나머지 한 쪽.. 2024. 4. 3.
[C++] STL 자료구조: stack ​vector와 string은 동적 배열로 임의 위치의 접근, 수정과 마지막 위치의 삽입, 삭제가 O(1)이고, 임의 위치의 삽입, 삭제가 O(n)이라는 특징을 가지고 있어서 연속적인 정보를 저장하는데 적합하다.stack은 두 자료구조처럼 임의 위치의 접근, 수정을 제공하지 않으며, 마지막 위치의 접근, 삽입, 삭제에만 특화된 자료형이다. 따라서 stack은 원소들을 순서대로 집어넣거나 가장 최근에 들어온 원소를 확인할 때 주로 사용된다. 원소들은 삽입된 순서대로 가장 먼저 삽입된 원소가 맨 위에 오도록 저장되어있으며, 항상 가장 마지막에 삽입된 원소부터 접근할 수 있다. (프링글스를 뒤집어서 아래부터 감자칩을 넣는다고 생각하면 된다)이러한 특성을 LIFO(Last In First Out)이라고 한다.v.. 2024. 3. 31.
[C++] STL 자료구조: string stringint main() {string s(5, 'a'); // s = "aaaaa" string t = "Hello World!"; // == t("Hello World!") s.pop_back(); // s = "aaaa" s.push_back('b'); // s = "aaaab" s.insert(s.begin() + 1, 'c'); // insert 'c' at s[1], s = "acaaab" s.insert(s.begin() + 3, 2, 'd'); // insert "dd" at s[3], s = "acaddaab"; s.erase(s.begin() + 1); // erase s[1], s = "aaddaab" s.erase(s.begin() + 2, s.end()); // erase .. 2024. 3. 28.
[C++] STL 자료구조: array, vector 배열은 같은 자료형의 원소들을 메모리 상의 연속적인 위치에 저장하는 자료구조이다.- 크기는 항상 고정이며 원소의 삭제는 불가능하다.- 여기서 원소의 삭제는 { 1, 2, 3 }을 { 1, 2, * }으로 바꾸는 것이 아니라 { 1, 2 }처럼 아예 한 칸을 삭제하는 것을 의미한다. 마찬가지로 원소의 삽입 또한 불가능하다. vectorc++ STL에서 가장 많이 사용되는 자료구조이다.위의 정적인 배열과 달리 vector는 크기가 가변적인 동적 배열으로, 배열과 마찬가지로 임의 위치의 원소를 O(1)에 접근 및 수정할 수 있으며, 메모리 상의 연속적인 위치에 존재한다.차이점은 크기를 런타임에 변경할 수 있으며, 원소의 삽입 및 삭제를 지원한다. 이때 삽입 및 삭제는 맨 뒤의 원소일 경우 O.. 2024. 3. 28.