๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

Problem Solving/C++ ์ •๋ฆฌ9

C++ specificํ•œ ๋‚ด์šฉ๋“ค ์ •๋ฆฌ (C C++ ์ฐจ์ด) new, delete ๋™์  ๋ฉ”๋ชจ๋ฆฌ ํ• ๋‹น์€ ๋Ÿฐํƒ€์ž„์— ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์šด์˜์ฒด์ œ์— ์š”์ฒญํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค. ์šด์˜์ฒด์ œ๋Š” ํž™์— ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ์žก์„ ์ˆ˜ ์žˆ์œผ๋ฉด ํ•ด๋‹น ๋ฉ”๋ชจ๋ฆฌ์˜ ์ฃผ์†Œ๋ฅผ ํ”„๋กœ๊ทธ๋žจ์— ๋ฐ˜ํ™˜ํ•œ๋‹ค. (delete) ๋™์ ์œผ๋กœ ํ• ๋‹น๋œ ๋ณ€์ˆ˜๋ฅผ ๋ชจ๋‘ ์‚ฌ์šฉํ–ˆ๋‹ค๋ฉด ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋ฐ˜ํ™˜ํ•ด ๋‹ค๋ฅธ ํ”„๋กœ๊ทธ๋žจ์—์„œ ์žฌํ• ๋‹น๋  ์ˆ˜ ์žˆ๊ฒŒ ํ•ด์•ผํ•œ๋‹ค. ํ•˜์ง€๋งŒ delete๋Š” ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๋ฐ˜ํ™˜ํ•  ๋ฟ ํฌ์ธํ„ฐ๋ฅผ ์‚ญ์ œํ•˜๋Š” ๊ฒƒ์€ ์•„๋‹ˆ๋‹ค. ๋”ฐ๋ผ์„œ delete ์งํ›„์— ํ•ด๋‹น ํฌ์ธํ„ฐ๋Š” ํ• ๋‹น ํ•ด์ œ๋œ ๋ฉ”๋ชจ๋ฆฌ๋ฅผ ๊ฐ€๋ฆฌํ‚ค๋Š” dangling pointer๊ฐ€ ๋œ๋‹ค. dangling pointer๋ฅผ ์—ญ์ฐธ์กฐํ•˜๊ฑฐ๋‚˜ ๋‹ค์‹œ deleteํ•˜๋ฉด ์ •์˜๋˜์ง€ ์•Š์€ ๋™์ž‘์ด ๋ฐœ์ƒํ•œ๋‹ค. ์ด๋ฅผ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด, delete ํ›„ ํ•ด๋‹น ํฌ์ธํ„ฐ๋ฅผ nullptr๋กœ ์„ค์ •ํ•˜์ž. ๋งŒ์•ฝ ๋‹ค๋ฅธ ํฌ์ธํ„ฐ๊ฐ€ (delete๋œ) ๊ฐ™์€ ๋™์  ํ• ๋‹น ๋ฉ”๋ชจ๋ฆฌ.. 2020. 6. 30.
๋ฒ”์œ„ ๊ธฐ๋ฐ˜ ํฌ๋ฌธ (Range-based for loop) for(auto elem: arr) // arr์˜ ์š”์†Œ๊ฐ€ elem์— ๋ณต์‚ฌ for(auto& elem: arr) // arr์˜ ์š”์†Œ์˜ ์ฐธ์กฐ (๊ฐ’ ๋ณ€๊ฒฝ ๊ฐ€๋Šฅ) [๊ถŒ์žฅ] for(const auto& elem: arr) // ์ฝ๊ธฐ ์ „์šฉ + ์ฐธ์กฐ [๊ถŒ์žฅ] ๋ฐฐ์—ด, vector, deque, list, set, map์— ๋ชจ๋‘ ์‚ฌ์šฉ ๊ฐ€๋Šฅ https://boycoding.tistory.com/210 C++ 07.18 - แ„‡แ…ฅแ†ทแ„‹แ…ฑ แ„€แ…ตแ„‡แ…กแ†ซ for แ„†แ…ฎแ†ซ (range-based for statement) แ„‡แ…ฅแ†ทแ„‹แ…ฑ แ„€แ…ตแ„‡แ…กแ†ซ for แ„†แ…ฎแ†ซ (range-based for statement) '06.06 - for ๋ฌธ' ํฌ์ŠคํŠธ์—์„œ for ๋ฌธ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐฐ์—ด์˜ ๊ฐ ์š”์†Œ๋ฅผ ๋ฐ˜๋ณตํ•˜๋Š” ์˜ˆ์ œ๋ฅผ ๋ดค๋‹ค. #include int main.. 2020. 6. 1.
C++ ์ˆœ์ฐจ ์ปจํ…Œ์ด๋„ˆ (vector, deque, list) vector ํƒ€์ž… T๋ฅผ ์›์†Œ๋กœ ๊ฐ–๋Š” ์ˆœ์ฐจ ์ปจํ…Œ์ด๋„ˆ๋กœ ํ˜„์žฌ ํ• ๋‹น๋œ ์šฉ๋Ÿ‰(capacity)์„ ์ดˆ๊ณผํ•˜๋Š” ์ฆ‰์‹œ ๋” ๋งŽ์€ ์›์†Œ๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ์ถ”๊ฐ€ ๊ณต๊ฐ„์ด ์ž๋™์œผ๋กœ ํ• ๋‹น๋œ๋‹ค. ์ปจํ…Œ์ด๋„ˆ์˜ ๋์—์„œ ์›์†Œ๋ฅผ ์ถ”๊ฐ€ ๋˜๋Š” ์‚ญ์ œํ•  ๋•Œ๋งŒ ํšจ์œจ์ ์ด๋‹ค. - ์šฉ๋Ÿ‰/ํฌ๊ธฐ: capacity(), reserve(), size(), resize(), empty() - ์›์†Œ ์ ‘๊ทผ: [], at(), front(), back() - ์›์†Œ ์ถ”๊ฐ€: push_back(), emplace_back(), emplace(), insert() - ์›์†Œ ์‚ญ์ œ: clear(), pop_back(), erase() deque ํƒ€์ž… T์˜ ์›์†Œ๋“ค์„ deque(double-ended queue)๋กœ ์ €์žฅํ•˜๋Š” ์ปจํ…Œ์ด๋„ˆ์ด๋‹ค. ์ˆœ์ฐจ์—ด์˜ ์‹œ์ž‘์ด๋‚˜ ๋์— ๊ฐ์ฒด๋“ค์„ ํšจ์œจ์ ์œผ๋กœ .. 2020. 5. 31.
C++14 STL ์ฒ ์ € ์ž…๋ฌธ) vector ๋ณดํ˜ธ๋˜์–ด ์žˆ๋Š” ๊ธ€ ์ž…๋‹ˆ๋‹ค. 2020. 5. 20.