E D R S I H C RSS
ID
Password
Join
๊ถŒ๋ ฅ์— ๋Œ€ํ•œ ํƒ์š•์€ ํž˜์ด ์•„๋‹ˆ๋ผ ์•ฝํ•จ์— ๋ฟŒ๋ฆฌ๋ฐ•๊ณ  ์žˆ๋‹ค. โ€•์—๋ฆฌํžˆ ํ”„๋กฌ

๏ปฟ

Contents

1 ์‹œ์ž‘ํ•˜๋ฉฐ
2 ์ •์ ๋ฐฐ์—ด
3 ์šฐ์„ , ์–ด๋–ค ๊ฒฝ์šฐ์— ์–ด๋–ค ๊ฒƒ์„ ์‚ฌ์šฉํ•ด์•ผํ•˜๋‚˜?
4 ๋ฐ˜๋ณต์ž(iterator)์™€ ๋ฃจํ”„

1 ์‹œ์ž‘ํ•˜๋ฉฐ #

์ฝ”๋”ฉ์„ ํ•˜๋ฉด์„œ ๋งŽ์ด ๋“œ๋Š” ์ƒ๊ฐ ์ค‘ ํ•˜๋‚˜๋Š” "์ง์ ‘ ์ž‘์„ฑํ•˜๋Š” ๊ฒƒ์ด ์ข‹์€๊ฐ€? ๋‹ค๋ฅธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋‚˜ ์†Œ์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹์€๊ฐ€?"์— ๋Œ€ํ•œ ์„ ํƒ์ด ์ƒ๊ฐ์™ธ๋กœ ๋งŽ๋‹ค๋Š” ๊ฒƒ์ด๋‹ค. ๋ฌผ๋ก , ์ฒ˜์Œ ๊ณต๋ถ€ํ•˜๋Š”๋ฐ ์žˆ์–ด์„œ ๋„ˆ๋ฌด ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ์— ์˜์กดํ•˜๋ฉด ๊ฒฐ๊ณผ๋Š” ๋นจ๋ฆฌ ๋‚˜์˜ค๊ฒ ์ง€๋งŒ ์ž์‹ ์˜ ์ฝ”๋”ฉ์‹ค๋ ฅ์ด ๋งŽ์ด ๋Š˜์ง€๋Š” ์•Š์„ ๊ฒƒ์ด๊ณ , ๋ชจ๋“  ๊ฒƒ์„ ๋‹ค ์ž‘์„ฑํ•œ๋‹ค๋ฉด ๊ทธ ๊ฒฐ๊ณผ๊ฐ€ ๋‚˜์˜ค๋Š” ์†๋„๋Š” ๋А๋ฆฌ๋‹ˆ๊น ์—…๋ฌด์ ์œผ๋กœ๋Š” ๋นต์ ์ด ๋  ๊ฒƒ์ด ๋‹น์—ฐํ•˜๋‹ค. ์–ด๋–ป๊ฒŒ ๋ณด๋ฉด, ์ผ๋ฐ˜ C ๋ฐฐ์—ด๊ณผ vector์˜ ์‚ฌ์šฉ์—ฌ๋ถ€์™€ ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ๋ฅผ ์ง์ ‘ ์ฝ”๋”ฉํ•˜๋Š” ๊ฒƒ๊ณผ list๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ๊ทธ๋Ÿฐ ์„ ํƒ์ผ ์ˆ˜๋„ ์žˆ๋‹ค.

ํ•˜์ง€๋งŒ, printf()๋‚˜ scanf()์™€ ๊ฐ™์€ ํ•จ์ˆ˜๋Š” ๊ฐ€์ ธ๋‹ค ์“ฐ๋Š” ๊ฒƒ์„ ๋‹น์—ฐํ•˜๊ฒŒ ์ƒ๊ฐํ•˜๋ฉด์„œ, ์œ ๋… ์ž๋ฃŒ๊ตฌ์กฐ์—๋งŒ ๋‚ ์ฝ”๋”ฉ์„ ์ฃผ์žฅํ•˜๋Š” ๊ฒƒ์€ ์–ด๋ถˆ์„ฑ์„ค์ด๋ผ๊ณ  ๊ฐœ์ธ์ ์œผ๋กœ ์ƒ๊ฐํ•œ๋‹ค. ๋ฌผ๋ก  ์ž๋ฃŒ๊ตฌ์กฐ๋Š” ํ•œ๋‘๋ฒˆ์ •๋„๋Š” ๋‚ ์ฝ”๋”ฉ์„ ํ•ด๋ด์•ผํ•˜์ง€๋งŒ ๊ทธ๊ฑด ์–ด๋””๊นŒ์ง€๋‚˜ ์Šคํ„ฐ๋””์— ๋Œ€ํ•œ ์ด์•ผ๊ธฐ๊ณ , ์—…๋ฌด์ ์œผ๋กœ๋Š” ์•ˆ์ •์ ์ธ ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๋ฅผ ์ด์šฉํ•˜๋Š” ๊ฒƒ๋„ ํ•˜๋‚˜์˜ ๋Šฅ๋ ฅ์ด ๋  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

๋‚˜๋Š” STL์„ ์ ‘ํ•˜๊ธฐ ์ด์ „์—๋Š” ๊ฑฐ์˜ ์†์ˆ˜ ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ์ž‘์„ฑํ•˜๋Š” ํŽธ์ด์—ˆ๋‹ค. (๋ฌผ๋ก  STL์ด ํ˜„์กดํ•˜๋Š” ๋ชจ๋“  ์ž๋ฃŒ๊ตฌ์กฐ๋ฅผ ๋‹ด๊ณ  ์žˆ๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๋‹ค) ์†์ˆ˜ ์ž‘์„ฑํ• ๋•Œ ๊ฐ€์žฅ ๋งŽ์ด ์„ฑ๊ฐ€์‹œ๊ฒŒ ๋А๊ปด์กŒ๋˜ ๊ฒƒ์€ ์ด์ง„ํŠธ๋ฆฌ๋„ ์•„๋‹ˆ๊ณ , ๋ณต์žกํ•œ A* ์•Œ๊ณ ๋ฆฌ์ฆ˜์„ ๊ตฌํ˜„ํ•  ๋•Œ๋„ ์•„๋‹Œ ๋ฐ”๋กœ ๋ฐฐ์—ด์„ ์‚ฌ์šฉํ•  ๋•Œ์˜€๋‹ค. ์ƒ๊ฐ๋ณด๋‹ค ๋งŽ์€ ๋ถ€๋ถ„์—์„œ ์‚ฌ์šฉํ•˜๋Š” ๋ฐ๋„ ๋ถˆ๊ตฌํ•˜๊ณ , ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ํ•ด์ œํ•ด์•ผํ•˜๋Š” ๋ถ€๋‹ด๊ฐ, ์ผ์ • ์šฉ๋Ÿ‰์ด์ƒ์€ ๋„ฃ์„ ์ˆ˜ ์—†๊ณ , ์–ด๋–ค ๋ฐฐ์—ด์„ ๋‹ค๋ฅธ ๋ฐฐ์—ด๋กœ ๋ณต์‚ฌํ•  ๋•Œ์˜ ๊ทธ ๋ณต์žกํ•จ๋“ฑ์ด ๋‚˜๋ฅผ ๊ดด๋กญํ•˜๋Š” ์š”์ธ์ด์—ˆ๋‹ค.

STL์€ ํ™•์‹คํžˆ ์ด๋Ÿฐ ๊ณ ๋ฏผ๋“ค์„ ๋œ์–ด์ค€๋‹ค. MS VC์— ํฌํ•จ๋œ STL์ด ๋ฒ„๊ทธ๊ฐ€ ๋งŽ๋‹ค๋ผ๋Š” ์ ๋งŒ ๋นผ๊ณ ...-_-a (๊ฐœ์ธ์ ์œผ๋กœ STLPort๋ฅผ ์ถ”์ฒœํ•œ๋‹ค) ๋ฌผ๋ก  ์„ธ์ƒ์˜ ๋ชจ๋“  ๋ผ์ด๋ธŒ๋Ÿฌ๋ฆฌ๊ฐ€ ๊ทธ๋ ‡๋“ฏ์ด STL์ด ๋ชจ๋“  ์ผ์„ ๋‹คํ•ด์ฃผ๋Š” ์‹ ๊ณผ ๊ฐ™์€ ์กด์žฌ๋Š” ์•„๋‹ˆ๋‹ค. STL์€ ๊ฐ€์ •๋ถ€๊ฐ™์€ ์กด์žฌ์ด๋‹ค. ๊ท€์ฐฎ์€ ์ผ์„ ์–ด๋А์ •๋„ ํ•ด์ฃผ์ง€๋งŒ, ์ •์ž‘ ์ง‘์ฃผ์ธ์€ ๊ณ„์† ์‹ ๊ฒฝ์„ ์จ์ฃผ์–ด์•ผํ•˜๋Š” ์กด์žฌ๊ฐ™์€ ๊ฑฐ ๋ง์ด๋‹ค. (๊ฒŒ๋‹ค๊ฐ€ ๊ฐ€์ •๋ถ€๊ฐ€ ์–ด๋–ป๊ฒŒ ๋ฌผ๊ฑด๋“ค์„ ์ •๋ฆฌํ•˜๋Š” ์ง€์— ๋Œ€ํ•œ ํ™•์ธ๋„ ํ•„์š”ํ•  ๊ฒƒ์ด๋‹ค. ^^) ์ด ๊ธ€์—์„œ๋Š” ๋ฐฐ์—ด์ด๋ผ๋Š” ๊ฒƒ์„ ์‚ฌ์šฉํ•  ๋•Œ ๊ฐœ์ธ์ ์œผ๋กœ STL์˜ vector, deque, list์˜ ๊ธฐ์ดˆ์ ์ธ ์‚ฌ์šฉ๋ฒ•์— ๋Œ€ํ•ด์„œ ๋…ผํ•˜๊ณ  ์žˆ์Œ์„ ๋ฐํžŒ๋‹ค. ์ผ๋ฐ˜์ ์ธ ๋ฐฐ์—ด๊ณผ ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ๋Š” ์•Œ๊ณ  ์žˆ๋‹ค๊ณ  ํ•˜๊ณ  ์ง„ํ–‰ํ•˜๋„๋ก ํ•˜๊ฒ ๋‹ค. ์•„๋งˆ๋„ STL์„ ์ฒ˜์Œ ์ ‘ํ•˜๋Š” ์‚ฌ๋žŒ์—๊ฒŒ ์ด ๊ธ€์ด ์ฒ˜์Œ ์‹œ์ž‘ํ•˜๊ธฐ์— ๋„์›€์ด ๋˜์—ˆ์œผ๋ฉด ํ•˜๋Š” ๋ฐ”๋žจ์ด๋‹ค.

๊ฐœ์ธ์ ์œผ๋กœ Effective STL์ด๋ž€ ์ฑ…์„ ๋ฌด์ง€๋ฌด์ง€ ๊ฐ๋ช…๊นŠ๊ฒŒ ์ฝ์—ˆ๋‹ค. ๋ฒˆ์—ญ์„œ๊ฐ€ ์ธํฌ๋ถ์—์„œ ๋™๋ช…์˜ ์ฑ…์œผ๋กœ ์ถœ๊ฐ„๋˜์—ˆ์œผ๋‹ˆ ์ฐธ๊ณ  ๋ฐ”๋ž€๋‹ค. (์˜์–ด๊ฐ€ ์งง์€ ๊นŒ๋‹ญ์— ๋‚˜๋„ ์ด ์ฑ…์œผ๋กœ STL์˜ ๋งŽ์€ ๋ถ€๋ถ„์„ ๋‹ค์‹œ ์•Œ๊ฒŒ ๋˜์—ˆ๋‹ค) ์ด ๊ธ€๋„ ์•Œ๊ฒŒ๋ชจ๋ฅด๊ฒŒ ์ด ์ฑ…์„ ์•„์ฃผ ๋งŽ์ด ์ฐธ๊ณ ํ•˜๊ณ  ์žˆ์Œ์„ ๋ฐํžŒ๋‹ค. ^_^a

๋‹ค์‹œ ํ•œ๋ฒˆ ๋งํ•˜์ง€๋งŒ, ์ด ๊ธ€์€ ๊ธฐ์ดˆ์ ์ธ ๋‚ด์šฉ์„ ๋‹ด๊ณ  ์žˆ๋‹ค. vector์™€ list์— ๋Œ€ํ•ด์„œ ์•Œ๊ณ  ์žˆ๋Š” ์‚ฌ๋žŒ์€ ์•ˆ๋ด๋„ ์ข‹๋‹ค.

2 ์ •์ ๋ฐฐ์—ด #

์ผ๋ฐ˜์ ์œผ๋กœ C ์—์„œ ๋ณดํ†ต ์‚ฌ์šฉํ•˜๋Š” ๋ฐฐ์—ด์€ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์„ ์–ธํ•œ๋‹ค.
int c[40]; // 40๊ฐœ์˜ ๊ฐ’์„ ๋„ฃ์„ ์ˆ˜ ์žˆ๋‹ค.

์œ„ ๋ฐฉ๋ฒ•์€ ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋‹จ์ ์ด ์žˆ๋‹ค.
  1. 40๊ฐœ๋ผ๋Š” ์ •๋ณด๋ฅผ ์ฐจํ›„ ํ”„๋กœ๊ทธ๋žจ์ƒ์—์„œ ์•Œ๋ ค๋ฉด ๋ณ„๋„์˜ ๋ณ€์ˆ˜๋ฅผ ๋งŒ๋“ค๊ฑฐ๋‚˜ ๋งคํฌ๋กœ(#define๋ฌธ)๋ฅผ ์„ ์–ธํ•ด์•ผํ•œ๋‹ค.
  2. 40๊ฐœ ์ด์ƒ์˜ ์ •๋ณด๋ฅผ ๋„ฃ์„ ์ˆ˜ ์—†๋‹ค. ์ฆ‰, c[40] = 10;์ด๋ผ๊ณ  ์‹คํ–‰ํ•˜๋ฉด ๊ทธ ์ฆ‰์‹œ ๋ณดํ˜ธ์˜ค๋ฅ˜๊ฐ€ ์ผ์–ด๋‚˜๊ณ  ํ”„๋กœ๊ทธ๋žจ์€ ์ข…๋ฃŒํ•œ๋‹ค.

๋ฌผ๋ก  C ๊ธฐ๋ณธ ๋ฌธ๋ฒ•์„ ๊ฐ€์ง€๊ณ  ๋ญ๋ผ๊ณ  ํ•˜๊ณ  ์‹ถ์€ ๊ฑด ์•„๋‹ˆ๋‹ค. ํฌ์ธํ„ฐ ์—ฐ์‚ฐ๋“ฑ๊ณผ ๊ฐ™์€ ํ•˜์œ„ ์ฒ˜๋ฆฌ๋ฅผ ์œ„ํ•ด์„œ๋ฉด ์œ„์™€ ๊ฐ™์€ ์ผ๋ฐ˜ C ๋ฐฐ์—ด์„ ์‚ฌ์šฉํ•ด์•ผ ํ•˜๋Š” ๊ฒฝ์šฐ๋„ ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ์œ„ 2๊ฐ€์ง€ ๋ฌธ์ œ๋Š” ๊ณ„์† ์•ˆ๊ณ  ๊ฐ€์•ผํ•œ๋‹ค. ์ด๊ฒƒ์€ vector๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๊ฐ„๋‹จํžˆ ํ•ด๊ฒฐ๋œ๋‹ค.

#include <vector>

using namespace std;

vector<int> c;

์—‡, ๊ธธ์ด๋ฅผ ์„ ์–ธํ• ๋•Œ ์ง€์ •ํ•˜์ง€ ์•Š๋„ค? ๋ผ๊ณ  ์ƒ๊ฐ์ด ๋“ค ๊ฒƒ์ด๋‹ค. ๋ฌผ๋ก  ๋ฐฐ์—ด์˜ ๊ธธ์ด๋„ ๋ช…์‹œํ•  ์ˆ˜ ์žˆ๊ณ , ์ดˆ๊ธฐ๊ฐ’๋„ ์จ์ค„ ์ˆ˜ ์žˆ๋‹ค.
vector<int> c(10, 0);
์ด๊ฒƒ์€ 10์นธ์˜ int ๋ฐฐ์—ด์„ ๋งŒ๋“ค๊ณ , ๊ฐ ์นธ์„ 0์œผ๋กœ ์ดˆ๊ธฐํ™”ํ•˜๋ผ๋Š” ๋œป์ด ๋œ๋‹ค. ์ผ๋‹จ ์œ„์™€ ๊ฐ™์ด ์„ ์–ธํ•˜๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™์€ ๋ฌธ๋ฒ•๋“ค์ด ๊ฐ€๋Šฅํ•˜๋‹ค.
c[30] = 10;
c์˜ 30๋ฒˆ์งธ ํ•ญ๋ชฉ์˜ ๊ฐ’์€ 10์ด๋‹ค.

printf("%d\n", c.size());
์œ„ ๋ฌธ์žฅ์€ c์˜ ๊ธธ์ด๋ฅผ ์ถœ๋ ฅํ•œ๋‹ค.

์š”์•ฝํ•ด๋ณด๋ฉด, vector์˜ ์žฅ์ ์€ ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.
  1. ๋์— ์š”์†Œ๋ฅผ ์ถ”๊ฐ€ํ•˜๋ฉด ์ž๋™์œผ๋กœ ๊ทธ ๊ธธ์ด๊ฐ€ ๋Š˜์–ด๋‚œ๋‹ค.
  2. ์ดˆ๊ธฐํ™” ๋ฐ ํ•ด์ œ๋ฅผ ์ž๋™์œผ๋กœ ์ˆ˜ํ–‰ํ•œ๋‹ค.
  3. ์ดˆ๊ธฐํ™”๋•Œ ๋ฐฐ์—ด์˜ ๊ธธ์ด๋ฅผ ๋ช…์‹œํ•จ๊ณผ ๋™์‹œ์— ๊ฐ’์˜ ์ดˆ๊ธฐํ™”๋„ ๊ฐ„ํŽธํ•˜๊ฒŒ ์‹คํ–‰ํ•  ์ˆ˜ ์žˆ๋‹ค.

3 ์šฐ์„ , ์–ด๋–ค ๊ฒฝ์šฐ์— ์–ด๋–ค ๊ฒƒ์„ ์‚ฌ์šฉํ•ด์•ผํ•˜๋‚˜? #

vector์™€ deque์€ ์ •์ ๋ฐฐ์—ด์„ ๋‚˜ํƒ€๋‚ด๊ณ , list๋Š” ์–‘๋ฐฉํ–ฅ ์—ฐ๊ฒฐ๋ฆฌ์ŠคํŠธ๋ฅผ ๋‚˜ํƒ€๋‚ธ๋‹ค๋Š” ์ด์•ผ๊ธฐ๋ฅผ ๋จผ์ €ํ•ด์•ผ๊ฒ ๋‹ค. ์ฆ‰, ์…‹ ๋ชจ๋‘ '๋ฐฐ์—ด'์ด๋ž€ ๊ฒƒ์„ ๋‚˜ํƒ€๋‚ด์ง€๋งŒ, ๊ฐ๊ฐ์˜ ์—ฐ์‚ฐ์ด๋‚˜ ๋™์ž‘์„ ์ˆ˜ํ–‰ํ•  ๋•Œ ๊ฒฝ์šฐ์— ๋”ฐ๋ผ ์„ฑ๋Šฅ์ด ๋‹ค๋ฅด๊ธฐ ๋•Œ๋ฌธ์— ๋‹ค์Œ๊ณผ ๊ฐ™์„ ๋•Œ ์‚ฌ์šฉํ•˜๋ฉด ์ข‹๋‹ค.

์ปจํ…Œ์ด๋„ˆ์‚ฌ์šฉํ•ด์•ผํ• ๊ฒฝ์šฐ(๊ฐ€๊ธ‰์ )์‚ฌ์šฉํ•˜์ง€๋ง์•„์•ผํ• ๊ฒฝ์šฐ
vector๋ฐฐ์—ด์˜ ์ž„์˜์˜ ์œ„์น˜์˜ ๊ฐ’์„ ๋นˆ๋ฒˆํ•˜๊ฒŒ ์ฝ์–ด๋“ค์—ฌ์•ผ ํ•  ๊ฒฝ์šฐ. ๊ฐ’์˜ ์ถ”๊ฐ€์ž‘์—…์€ ๋ฐฐ์—ด์˜ ๋์—์„œ๋งŒ ๋ฐœ์ƒํ•  ๊ฒฝ์šฐ.์ฝ๊ธฐ์ž‘์—…๋ณด๋‹ค ๋ฐฐ์—ด์˜ ์ค‘๊ฐ„์˜ ์‚ฝ์ž…/์‚ญ์ œ๊ฐ€ ๋นˆ๋ฒˆํžˆ ์ผ์–ด๋‚  ๊ฒฝ์šฐ.๋ฐฐ์—ด์˜ ๋์ด ์•„๋‹Œ ์•ž์œผ๋กœ๋„ ์ถ”๊ฐ€์ž‘์—…์ด ์ผ์–ด๋‚  ๊ฒฝ์šฐ.
deque๊ฐ’ ์ถ”๊ฐ€์ž‘์—…์€ ๋ฐฐ์—ด์˜ ์ฒ˜์Œ, ๋ ์–‘์ชฝ์—์„œ ๋ฐœ์ƒํ•  ์ˆ˜ ์žˆ์œผ๋ฉฐ, ์—ฌ์ „ํžˆ ์ž„์˜์˜ ์œ„์น˜์˜ ๊ฐ’์„ ๋นˆ๋ฒˆํ•˜๊ฒŒ ์ฝ์–ด๋“ค์—ฌ์•ผ ํ•  ๊ฒฝ์šฐ.๋ฐฐ์—ด์˜ ์ฒ˜์Œ์— ์š”์†Œ๋ฅผ ์ถ”๊ฐ€ํ•  ํ•„์š”๊ฐ€ ์—†์„ ๊ฒฝ์šฐ. ๋ฐฐ์—ด์˜ ์ค‘๊ฐ„์— ๊ฐ’์˜ ์‚ฝ์ž…/์‚ญ์ œ๊ฐ€ ํ•„์š”ํ•  ๊ฒฝ์šฐ.
list๋ฐฐ์—ด์„ ๊ฒ€์ƒ‰ํ•˜๋Š” ๊ฒƒ๋งŒํผ ์‚ฝ์ž…/์‚ญ์ œ๊ฐ€ ๋นˆ๋ฒˆํ•˜๊ฒŒ ๋ฐœ์ƒํ•  ๊ฒฝ์šฐ.์ž„์˜์˜ ์œ„์น˜์˜ ๊ฐ’์„ ์ฝ์–ด์•ผ ํ•  ๊ฒฝ์šฐ.

์œ„ ํ‘œ์—์„œ ๋ณด๋ฉด, vector์™€ deque์€ ๊ฑฐ์˜ ๋น„์Šทํ•œ ๊ฒฝ์šฐ์ž„์„ ๋ณผ ์ˆ˜ ์žˆ๊ณ , list์™€ vector/deque์€ ์„œ๋กœ ์‚ฌ์šฉํ•ด์•ผ ํ•  ๊ฒฝ์šฐ๊ฐ€ ๋ฐ˜๋Œ€์ž„์„ ์•Œ ์ˆ˜ ์žˆ๋‹ค. vector์™€ deque์˜ ๊ฒฝ์šฐ๋ฅผ ์ข€๋” ์ž์„ธํ•˜๊ฒŒ ๋‚˜๋ˆ„์–ด ๋ณด๋ฉด ๋‹ค์Œ๊ณผ ๊ฐ™๋‹ค.

  • vector๋Š” ๋ฐฐ์—ด์˜ ์ตœ๋Œ€ ์šฉ๋Ÿ‰์„ ์˜ˆ์•ฝํ•˜๋Š” ๊ฒƒ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. (reserve() ๋งด๋ฒ„ํ•จ์ˆ˜) deque์€ ์ด๊ฒƒ์ด ๋ถˆ๊ฐ€๋Šฅํ•˜๋‹ค. ๊ฒŒ๋‹ค๊ฐ€, c_str()ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ, ์ผ๋ฐ˜ C ๋ฐฐ์—ด์„ ์‚ฌ์šฉํ•˜๋Š” C ๊ธฐ๋ฐ˜์˜ ํ•จ์ˆ˜๋“ค๊ณผ ํ˜ธํ™˜๋  ์ˆ˜ ์žˆ๋‹ค.
  • deque์€ ๋ฐฐ์—ด์˜ ์•ž์— ๊ฐ’์„ ์ถ”๊ฐ€/์‚ญ์ œํ•˜๋Š” ๊ฒƒ์ด vector๋ณด๋‹ค ํ›จ์”ฌ ๋น ๋ฅด๋‹ค. ๋‹ค๋ฅธ ํ•จ์ˆ˜๋“ค์€ vector์˜ ๊ฒƒ๋“ค๊ณผ ๊ฑฐ์˜ ๋น„์Šทํ•œ ์†๋„๋ฅผ ๊ฐ€์ง„๋‹ค.

์œ„ ์ฐจ์ด์ ์„ ์ •ํ™•ํžˆ ์ธ์ง€ํ•˜๊ณ  ๊ฒฝ์šฐ์— ๋”ฐ๋ผ ์‚ฌ์šฉํ•˜๋Š” ๊ฒƒ์ด ์ข‹๋‹ค. ๋‹ค์‹œ ๊ฐ•์กฐํ•˜์ง€๋งŒ, vector, deque, list๋ชจ๋‘ ๊ฐ™์€ ๊ฐœ๋…์ƒ์˜ '๋ฐฐ์—ด'์ด์ง€๋งŒ, ์‚ฌ์šฉํ•˜๋Š” ์ƒํ™ฉ์— ๋”ฐ๋ผ 'ํšจ์œจ'์ด ๋‹ฌ๋ผ์ง์„ ๋ช…์‹ฌํ•˜์ž.

4 ๋ฐ˜๋ณต์ž(iterator)์™€ ๋ฃจํ”„ #

๋ฐฐ์—ด์„ ๊ฐ€์ง€๊ณ  ์ฒ˜๋ฆฌํ•˜๋Š” ๊ฐ€์žฅ ํ”ํ•œ ์ฝ”๋“œ์ค‘ ํ•˜๋‚˜๊ฐ€ ๋ฃจํ”„์ด๋‹ค. ์˜ˆ๋ฅผ ๋“ค๋ฉด, ๋ฐฐ์—ด์ƒ์˜ ๋ชจ๋“  ๊ฐ’์„ ํ™”๋ฉด์— ์ถœ๋ ฅํ•œ๋‹ค๊ฑฐ๋‚˜ ํ•˜๋Š” ๊ฒฝ์šฐ๊ฐ€ ๊ทธ๋Ÿฐ ๊ฒฝ์šฐ์ด๋‹ค. (์ด๊ฒƒ์€ for_each ์•Œ๊ณ ๋ฆฌ์ฆ˜์ด๋ž€ ๊ฒƒ์„ ์‚ฌ์šฉํ•˜์—ฌ ๊ตฌํ˜„ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์ง€๋งŒ, ์—ฌ๊ธฐ์„œ๋Š” ์ง์ ‘ ๊ตฌํ˜„ํ•  ๊ฒฝ์šฐ๋ฅผ ์ƒ๊ฐํ•˜๋„๋ก ํ•œ๋‹ค.) ์˜ˆ์ œ๋กœ ๋‹ค์Œ๊ณผ ๊ฐ™์ด ์„ ์–ธ๋˜์–ด์žˆ๋‹ค๊ณ  ํ•˜์ž.
list<string> sample_list;
list<string>::Iterator pList;
์•ž์—์„œ ์–ธ๊ธ‰ํ•œ ๋ฐฐ์—ด๊ตฌ์กฐ ์ค‘ list๋ฅผ ์‚ฌ์šฉํ•ด์„œ ์„ ์–ธ์„ ํ–ˆ๋‹ค. (์œ„์—์„œ๋Š” ๋ฌธ์ž์—ด์˜ ๋ฐฐ์—ด์„ ์„ ์–ธํ•œ ๊ฒฝ์šฐ์ด๋‹ค.) ๋‹ค์Œ ์ค„์— ์„ ์–ธํ•œ pList๋Š” ๋ฐ˜๋ณต์ž(iterator)๋ผ๋Š” ๊ฒƒ์œผ๋กœ C ๋ฐฐ์—ด์—์„œ ํฌ์ธํ„ฐ ๋ณ€์ˆ˜๊ฐ€ ํ•˜๋Š” ์—ญํ• ์„ ์–ด๋– ํ•œ ํƒ€์ž…์—๋„ ์‚ฌ์šฉ๊ฐ€๋Šฅํ•œ ํ˜•์‹์œผ๋กœ ์ผ๋ฐ˜ํ™”์‹œํ‚จ ๊ฒƒ์ด๋ผ๊ณ  ํ•  ์ˆ˜ ์žˆ๋‹ค. ์œ„์—์„œ์ฒ˜๋Ÿผ, ์ปจํ…Œ์ด๋„ˆ์—๋Š” ํ•ญ์ƒ ๋ฐ˜๋ณต์ž๊ฐ€ ๋”ฐ๋ผ๋‹ค๋‹Œ๋‹ค. (C ๋ฐฐ์—ด์„ ์‚ฌ์šฉํ•  ๋•Œ ํฌ์ธํ„ฐ๋ฅผ ๋ฐ˜๋“œ์‹œ ์“ฐ๊ฒŒ๋˜๋Š” ๊ฒƒ๊ณผ ๊ฐ™๋‹ค.)

๊ณ„์† ์ž‘์„ฑ์˜ˆ์ •

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2010-10-28 12:42:52
Processing time 0.3369 sec