์๋ก
์ด๋ฒ ๊ธ์ ๋ช ์ฃผ๊ฐ ๋ฐฑ์ค์ด๋ ๊ตฌ๋ฆํค ๋ฑ ์ฌ๋ฌ ๋ฌธ์ ๋ค์ ํ์ด๋ณด๋ฉฐ ๊ฐ์ธ์ ์ผ๋ก ํ์ํ๋ค๊ณ ๋๊ผ๋ ์๋ฃ๊ตฌ์กฐ๋ค์ ๋ฉ๋ชจํ๊ธฐ ์ํด ์ด ๊ฒ์ด๋ค. C++์ ์กด์ฌํ๋ ๋ผ์ด๋ธ๋ฌ๋ฆฌ๋ฅผ ์ด์ฉํ ์๋ฃ ๊ตฌ์กฐ๋ค๊ณผ ์ด ์ธ์ ๊ธฐํ ๋ฐ์ดํฐ ์ ์ฅ ๋ฐฉ๋ฒ์ ๊ธฐ์ ํด๋ณด๋ ค๊ณ ํ๋ค. ํด๋น ๊ธ์ C++์ ๊ธฐ์ค์ผ๋ก ์์ฑํ์์ผ๋, ํต์์ ์ผ๋ก ์ฌ์ฉํ๋ ๋ค๋ฅธ ์ธ์ด๋ค(Java, Python ๋ฑ) ๋ค๋ฅธ ์ธ์ด์์๋ ์ฝ๊ฐ์ ๋ณ๊ฒฝ๋ง ํ์ฌ ์ ์ฉํด ๋ณผ ์ ์๋ค.
๋ณ์(Variable)
- ๊ฐ์ฅ ๊ธฐ์ด์ ์ธ ๋ฐ์ดํฐ๋ฅผ ๋ด๋ ๊ณต๊ฐ
- ๋ค๋ฅธ ์ธ์ด์์ ๋ด์๋ฏ์ด int, char, string, bool, float, double ๋ฑ ์๋ฃํ๊ณผ ์ ์๋ฅผ ํตํด ์ ์ธํ์ฌ ์ฌ์ฉํ๋ค.
- ์ ์ธ์ ์์น์ ๋ฐ๋ ์ ์ญ ๋ณ์(์ด๋์๋ ์ฌ์ฉ์ด ๊ฐ๋ฅํจ),์ง์ญ ๋ณ์(ํด๋น ์ง์ญ(Scope)์์๋ง ์ฌ์ฉ ๊ฐ๋ฅ)๋ก ๊ตฌ๋ถ๋๋ค.
- ๋ณ์์ ์ง์ ์
const | ๋ณ์ ์ ์ธ ์ const๋ฅผ ๋ถ์ด๊ฒ ๋๋ฉด ์์๋ก ์ ํ๋์ด ํ๋ก๊ทธ๋จ์ด ์คํ๋๋ ๋์ ํด๋น ๋ฐ์ดํฐ์ ๋ณ๊ฒฝ์ด ๋ถ๊ฐ๋ฅํ๋ค. |
static | ์ ์ ๋ณ์๋ผ๊ณ ํ๋ฉฐ ์ง์ญ ๋ณ์๋ก ์ ์ธํด๋ ์ ์ญ ๋ณ์ ์ฒ๋ผ ์ฌ์ฉ์ด ๊ฐ๋ฅํ๋ค. ํ๋ก๊ทธ๋จ์ด ์ข ๋ฃ ๋ ๋ ๊น์ง ์กด์ฌํ๋ค |
extern | ๋ค๋ฅธ ํ์ผ์ ์กด์ฌํ๋ ์ ์ญ๋ณ์๋ฅผ ์ฌ์ฉํ๊ณ ์ ํ ๋ ์ ์ธํ๋ค. |
๋ฐฐ์ด(Array)
- ์ ์ธํด์ผ ํ ๋ณ์๊ฐ ๋ง์ ๋ ์ฃผ๋ก ์ฌ์ฉ (๋ณ์์ ๊ฐ์ด ์๋ฃํ์ ์ ์ธํด์ฃผ์ด์ผ ํ๋ค.)
- ๋ฐฐ์ด์ ๊ตฌ์ฑ ๊ฐ์ ์์(element)๋ผ ํ๋ฉฐ, ๊ทธ ๊ฐ๋ค์ ์์น๋ฅผ ์ธ๋ฑ์ค(index)๋ผ๊ณ ํ๋ค.
- ๋ฐฐ์ด์ ์ ์ธ ๋ฐฉ์์ ๋ฐ๋ผ 1์ฐจ์ ๋ฐฐ์ด, 2์ฐจ์ ๋ฐฐ์ด...์ผ๋ก ์ ์ธ ๊ฐ๋ฅํ๋ค.
- ๊ณ ์ ๋ฐฐ์ด๊ณผ ๋์ ๋ฐฐ์ด๋ก ๋๋๋ค.
๊ณ ์ ๋ฐฐ์ด | arr[n] | ์ปดํ์ผ์์ ๋ฐฐ์ด์ ํฌ๊ธฐ๋ฅผ ๊ฒฐ์ |
๋์ ๋ฐฐ์ด | new arr[n] | ๋ฐํ์ ๋์์ ๋ฐฐ์ด์ ํฌ๊ธฐ๋ฅผ ๊ฒฐ์ , C์ malloc๊ณผ ๊ฐ์ ์ญํ ์ ํ๋ค. |
Vector
- ์ ์ฒด์ ์ธ ๊ตฌ์ฑ์ ๋ฐฐ์ด๊ณผ ์ ์ฌํ์ง๋ง, ๋ฉ๋ชจ๋ฆฌ ํฌ๊ธฐ์ ๋ณ๊ฒฝ์ด ๊ฐ๋ฅํ๋ค.
- ๋ฐฑํฐ๋ฅผ ์ ์ธํ ๋ค, ๋ฐ์ดํฐ์ ์ฝ์ ๊ณผ ์ญ์ ๊ฐ ๊ฐ๋ฅํ๋ค.
#include <vector> // vector๋ฅผ ์ฐ๊ธฐ ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ถ๊ฐ
vector<int> v // intํ์ ๋น vector๋ฅผ ์์ฑํ๋ค
vector<int> v(n) // 0์ผ๋ก ์ด๊ธฐํ๋ n๊ฐ์ ์์๋ฅผ ๋ณด์ ํ intํ์ ๋น vector๋ฅผ ์์ฑํ๋ค
vector<int> v(n, 5) // 5์ผ๋ก ์ด๊ธฐํ๋ n๊ฐ์ ์์๋ฅผ ๋ณด์ ํ intํ์ ๋น vector๋ฅผ ์์ฑํ๋ค
vector<int> v1(v2) // v2๋ฅผ ๋ณต์ฌํ v1 vector๋ฅผ ์์ฑํ๋ค
vector<vector<int>> v // 2์ฐจ์ intํ์ vector๋ฅผ ์์ฑํ๋ค
- ์ฃผ์ ํจ์
v.at(n) | ์ธ๋ฑ์ค๊ฐ n์ธ ์์๊ฐ ์กด์ฌ ํ ๊ฒฝ์ฐ ํด๋นํ๋ ๊ฐ์ ๋ฐํ |
v.front() | ์ฒซ ๋ฒ์งธ ์์๋ฅผ ๋ฐํ |
v.back() | ๋ง์ง๋ง ์์๋ฅผ ๋ฐํ |
v.clear() | ๋ฐฑํฐ์ ์ด๊ธฐํ (๋ฉ๋ชจ๋ฆฌ(๋ฐฑํฐ์ size)๋ ์ ์ง) |
v.begin() | ์ฒซ๋ฒ์งธ ์์๋ฅผ ๊ฐ๋ฅดํค๋ iterator๋ฅผ ๋ฐํ |
v.end() | ๋ง์ง๋ง ์์๋ฅผ ๊ฐ๋ฅดํค๋ iterator๋ฅผ ๋ฐํ |
v.push_back(n) | n์ ๋ฐฑํฐ์ ๋ง์ง๋ง ์์ ๋ค์ ์ถ๊ฐ |
v.pop_back() | ๋ง์ง๋ง ์์๋ฅผ ์ ๊ฑฐ |
v.size() | ๋ฐฑํฐ์ ํฌ๊ธฐ๋ฅผ ์ถ๋ ฅ |
v.insert(iter, n) | iter๊ฐ ๊ฐ๋ฅดํค๋ ์์น์ n์ ์ฝ์ , ํด๋น ์์น์ iterator๋ฅผ ๋ฐํ |
v.erase(iter) | iter๊ฐ ๊ฐ๋ฅดํค๋ ์์๋ฅผ ์ญ์ |
Pair
- ์์ผ๋ก ๋์ฌ STL๋ค๊ณผ ํจ๊ป ์์ฉํ๊ธฐ ์ข์ ํด๋์ค
- ์ฌ์ฉ์๊ฐ ์ง์ ํ 2๊ฐ ํ์ ์ ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๋ ๋ฐ ์ฌ์ฉ
- utility ์ด์ฉํ์ฌ ์ฌ์ฉ๊ฐ๋ฅํ๋, vector, algorithm ๋ผ์ด๋ธ๋ฌ๋ฆฌ์ utility๊ฐ ํฌํจ๋์ด ์์
#include <utility>
#include <vector>
#include <algorithm>
vector<pair<int,int>> v;
v.push_back(make_pair(5, 6));
v.push_back(make_pair(-2, 3));
Stack
- ํต์์ ์ผ๋ก ์๊ฐํ๋ LIFO(Last In First Out) ๊ตฌ์กฐ์ ๋ฐฐ์ด์ด๋ค.
- Vector๊ณผ ๊ฐ์ด ๋ฉ๋ชจ๋ฆฌ๊ฐ ๊ฐ๋ณ์ด๋ฉฐ, ์ฝ์ ๊ณผ ์ญ์ ๊ฐ ๊ฐ๋ฅํ๋ค.
#include <stack> // stack์ ์ฐ๊ธฐ ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ถ๊ฐ
stack<int> s; // int ์๋ฃํ์ stack ์ ์ธ
- ์ฃผ์ ํจ์
s.push(n) | n์ ์ถ๊ฐ |
s.pop() | top์ ํด๋นํ๋ ๋ฐ์ดํฐ๋ฅผ ์ญ์ |
s.top() | s ์คํ์ top์ ๋ฐํ |
s.empty() | ์คํ์ด ๋น์ด์๋์ง ํ์ธ (๋น์ด ์๋ค๋ฉด true ์ถ๋ ฅ) |
Queue
- ์์ Stack๊ณผ๋ ๋ค๋ฅด๊ฒ FIFO(First In First Out) ๊ตฌ์กฐ์ ๋ฐฐ์ด์ด๋ค.
#include <queue> // queue๋ฅผ ์ด์ฉํ๊ธฐ ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ถ๊ฐ
queue<int> q; // int ์๋ฃํ์ queue q ์ ์ธ
- ์ฃผ์ ํจ์
s.push(n) | ๋ง์ง๋ง ์์ ๋ค์ n์ ์ถ๊ฐ |
s.pop() | ๋งจ ์ ๋ฐ์ดํฐ๋ฅผ ์ญ์ |
s.front() | ๋งจ ์ ๋ฐ์ดํฐ๋ฅผ ๋ฐํ |
s.back() | ๋ง์ง๋ง ๋ฐ์ดํฐ๋ฅผ ๋ฐํ |
s.empty() | ํ๊ฐ ๋น์ด์๋์ง ํ์ธ (๋น์ด ์๋ค๋ฉด true ์ถ๋ ฅ) |
- ์ฐ์ ์์ ํ
- ์ต๋ ๋๋ ์ต์ ์์๋ฅผ ํ์ํ๊ฑฐ๋ ์ญ์ ๊ฐ๋ฅํ๊ณ , ์์์ ์์๋ฅผ ์ฝ์ ํ ์ ์๋ ์๋ฃ ๊ตฌ์กฐ
- ํ(heap)์ด๋ผ๊ณ ํ๋ ์ด์งํธ๋ฆฌ๋ฅผ ์ด์ฉํ์ฌ ๊ตฌํ๋๋ค.
priority_queue<int> q; // ์ต๋ ํ ๊ธฐ๋ฐ
priority_queue<int, vector<int>, greater<int>> q; /// ์ต์ ํ ๊ธฐ๋ฐ
List
- LinkedList(์ฐ๊ฒฐ๋ฆฌ์คํธ)๋ผ๊ณ ๋ ํ๋ฉฐ, ๊ฐ ์์๊ฐ ๊ฐ๋ฟ๋ง ์๋๋ผ ๋ค์ ์์๋ฅผ ๊ฐ๋ฆฌํค๋ ํฌ์ธํฐ๋ฅผ ๊ฐ์ด ๊ฐ์ง๊ณ ์์
- ๋ฐ์ดํฐ์ ์ฝ์ ์ด๋ ์ญ์ ๊ฐ ์ผ์ด๋ ๋, ๋ค์ ๋ฐ์ดํฐ๋ฅผ ๊ฐ์ ธ์ค๊ฑฐ๋ ๋ฐ ํ์ ์์ด ํฌ์ธํฐ๋ก ์ง์
#include <list> // list๋ฅผ ์ฐ๊ธฐ ์ํ ๋ผ์ด๋ธ๋ฌ๋ฆฌ ์ถ๊ฐ
list<int> l; // int์๋ฃํ์ ๋ฆฌ์คํธ l ์ ์ธ
- ์ฃผ์ ํจ์
list.front() | ์ฒซ ๋ฒ์งธ ์์๋ฅผ ๋ฐํ |
list.back() | ๋ง์ง๋ง ์์๋ฅผ ๋ฐํ |
list.begin() | ์ฒซ๋ฒ์งธ ์์๋ฅผ ๊ฐ๋ฅดํค๋ iterator๋ฅผ ๋ฐํ |
list.end() | ๋ง์ง๋ง ์์๋ฅผ ๊ฐ๋ฅดํค๋ iterator๋ฅผ ๋ฐํ |
list.push_front(n) | ๋ฆฌ์คํธ ๋งจ ์์ n์ ์ถ๊ฐ |
list.push_back(n) | ๋ฆฌ์คํธ ๋งจ ๋ค์ n์ ์ถ๊ฐ |
list.insert(iter, n) | iter๊ฐ ๊ฐ๋ฅดํค๋ ์์น์ n์ ์ฝ์ |
list.pop_front() | ์ฒซ๋ฒ์งธ ์์๋ฅผ ์ ๊ฑฐ |
list.pop_back() | ๋ง์ง๋ง ์์๋ฅผ ์ ๊ฑฐ |
list.erase(iter) | iter๊ฐ ๊ฐ๋ฅดํค๋ ์์๋ฅผ ์ญ์ |
'C++' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[C++] 1. C++ํ๋ก๊ทธ๋๋ฐ์ ๊ธฐ์ด (0) | 2023.08.15 |
---|