C++/c++

[STL] set

Rainbow๐ŸŒˆCoder 2022. 1. 18. 20:07
728x90

Set์˜ ํŠน์ง•

- ์›์†Œ๊ฐ€ ์‚ฝ์ž…๋˜๋ฉด ์ž๋™์œผ๋กœ ์ •๋ ฌ

set<string>s; // ์˜ค๋ฆ„์ฐจ์ˆœ
set<string, greater<>>s; // ๋‚ด๋ฆผ์ฐจ์ˆœ

- ์ค‘๋ณต๊ฐ’์„ ํ—ˆ์šฉํ•˜์ง€ ์•Š๋Š”๋‹ค.

set์— ์›์†Œ๊ฐ€ ๋“ค์–ด๊ฐ€๋ฉด ๊ทธ ์›์†Œ์˜ ๊ฐ’์„ ํ‚ค(key)๋ผ๊ณ  ํ•˜๋ฉฐ

์ค‘๋ณต์›์†Œ๋ฅผ ํ—ˆ์šฉํ•˜์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์— ๊ฐ ํ‚ค๋Š” ์ „๋ถ€ ๊ณ ์œ ํ•˜๋‹ค.

 

Set์„ ์‚ฌ์šฉํ•˜๊ธฐ ์ข‹์€ ๊ฒฝ์šฐ

1. ์‚ฝ์ž…๊ณผ ๋™์‹œ์— ์ •๋ ฌ์ด ํ•„์š”ํ•  ๋•Œ

2. ์ค‘๋ณต์„ ์ œ๊ฑฐํ•œ ์›์†Œ์˜ ์ง‘ํ•ฉ์ด ํ•„์š”ํ•  ๋•Œ

3. ์ƒˆ๋กœ ์‚ฝ์ž…ํ•˜๋ ค๋Š” ์›์†Œ๊ฐ€ ์ค‘๋ณต์ธ์ง€ ํ™•์ธํ•  ๋•Œ

set<string>s;
std::pair<set<string>::iterator,bool> ret;
ret = s.insert("a"); // s={a}
cout<< ret.second <<endl; // ์ถœ๋ ฅ 1
ret = s.insert("a"); // s={a}
cout<< ret.second <<endl; // ์ถœ๋ ฅ 0, a๊ฐ€ ์ด๋ฏธ ์žˆ์—ˆ์œผ๋ฏ€๋กœ

 

lower_bound(๊ฐ’), upper_bound(๊ฐ’), find(์›์†Œ), count(์›์†Œ)๋„ ํ™œ์šฉํ•  ์—ฌ์ง€๊ฐ€ ๋งŽ์„ ๊ฒƒ ๊ฐ™๋‹ค.

set์— ๋Œ€ํ•ด ์ž˜ ์ •๋ฆฌํ•ด์ฃผ์‹  ๋ธ”๋กœ๊ทธ : [C++, STL] ์•Œ๊ณ ๋ฆฌ์ฆ˜ ๋ฌธ์ œํ’€์ด๋ฅผ ์œ„ํ•œ ์…‹(set) - ์ฝ”๋“œ ๋‹ค์ด์–ด๋ฆฌ (tistory.com) 

 

 

728x90