๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
๐Ÿ’Ž/C++

[C++] vector ๋ฐฐ์—ด ์ค‘๋ณต ์ œ๊ฑฐ ํ•˜๋Š” ๋ฒ•

by dar0m! 2020. 3. 10.

๋ฐฐ์—ด ์ค‘๋ณต์„ ์ œ๊ฑฐํ•˜๋Š” ๋ฒ•

vector<int> v ๋ฅผ ์œ ์ผํ•œ ์›์†Œ๋“ค์˜ ์ง‘ํ•ฉ์œผ๋กœ ๋งŒ๋“ค๊ณ  ์‹ถ๋‹ค๋ฉด, 

  1. ์ •๋ ฌ์„ ํ•œ๋‹ค. : sort
  2. ์—ฐ์†๋œ ์ค‘๋ณต ์›์†Œ๋ฅผ vector์˜ ์ œ์ผ ๋’ท๋ถ€๋ถ„(์“ฐ๋ ˆ๊ธฐ ๊ฐ’)์œผ๋กœ ๋ณด๋‚ด๋ฒ„๋ฆฐ๋‹ค. : unique
  3. ์ค‘๋ณต๋œ ์›์†Œ๋“ค์ด ๋ชจ์—ฌ์žˆ๋Š” ๋’ท๋ถ€๋ถ„์„ ์‚ญ์ œํ•œ๋‹ค : erase

unique ํ•จ์ˆ˜๋Š” ๋ฐ˜ํ™˜๊ฐ’์ด vector ์“ฐ๋ ˆ๊ธฐ ๊ฐ’์˜ ์ฒซ๋ฒˆ์งธ ์œ„์น˜๊ฐ€ ๋˜๋ฏ€๋กœ ๋ฐ”๋กœ erase ํ•จ์ˆ˜ ์•ˆ์— ์ค‘์ฒฉํ•ด์„œ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
 
int main() {
    vector<int> v;
    v.push_back(3);
    v.push_back(4);
    v.push_back(5);
    v.push_back(1);
    v.push_back(1);
    v.push_back(1);
    v.push_back(2);
    v.push_back(3);
 
    sort(v.begin(), v.end());
    v.erase(unique(v.begin(), v.end()), v.end());
 
    for (int i = 0; i < v.size(); i++) {
        printf("%d", v[i]);
    }
 
    return 0;
}
cs

๋Œ“๊ธ€