U E D R , A S I H C RSS

EffectiveSTL/Vector And String

  • €žฅ งŽด “ฐŠ” vector, string— € จœ ํŒ ชจŒด‹ค. ํฐ1žฅ ํ›„ฐ˜€—Š” ชจฅดŠ” ‚ดšฉ(ํ• ‹ธฐ ฐ™€..)ด € งŽ•„„œ ‹จ „ˆ ›ฐ—ˆ‹ค.



1. Item13. Prefer vector and string to dynamically allocated arrays.

1.1. new/delete ฝค„˜ ฌธ œ 

  • new ํ•ดคฌœฉด delete ํ•ดค˜• ํ•œ‹คŠ” ฒˆกœ›€.
  • delete [] ™€ delete ž˜ จ• ํ•จ. ž˜ชป “ฐฉด ฌดŠจ ด ฒŒ–ดงˆ€ ชจ„.
  • ํ•œฒˆ deleteํ•œ ฉ”ชจฆฌ ˜ deleteํ•˜ฉด "ž˜ชปœ —ฐ‚ฐ... " š” —Ÿฌ€ œฐ€„ ชจ„.

1.2. vector/string „ “ฐฉด ข‹€ ดœ 

  • ž‹ ด •Œ•„„œ ฉ”ชจฆฌ €ฆฌ ํ•œ‹ค.(บฌ)
  • ž‹ ด •Œ•„„œ Š˜–ด‚œ‹ค.(—ญ‹œ บฌ)
  • ฐฐ—ด€  œณตํ•˜€ •ŠŠ” —ฐ‚ฐ„  œณตํ•œ‹ค.
  • char*€ งœฆ‚œ‹ค.

1.3. ‚˜ค‘— ฐพ•„ฒƒ“ค

  • reference countŠ” ฒŒ žˆŠ”ฐ.. ญํ•˜Š” Œ.. ฐธกฐ €ˆ˜ „Š”€?--a AfterCheck
  • €ํ‹ฐ “ฐ ˆ“œ ํ™˜ฒฝ—„œŠ” ‹คฅธ “ฐ ˆ“œ€ ํ• ‹ํ•ดณ  ณต‚ฌํ•ด€กœ ‹œ„ด  ˆ•ฝœ‹คŠ”ฐ.. ตณด ดฒƒŒ€ “ธฒƒธ€..--;



2. Item14. Use reserve to avoid unnecessary reallocations.

2.1. vector/string˜ ฉ”ชจฆฌ€ ํ•„š”ํ• •Œ ” ปค€Š”  •

  • ƒˆกœšด ฉ”ชจฆฌ ํ• ‹ํ•œ‹ค.(ฐ˜ œกœ ‘ฐฐ ปค„‹ค.)
  • ›ณธ ปจํ…Œด„ˆ˜ ฐ’“ค„ ƒˆกญฒŒ ํ• ‹ํ•œ ฉ”ชจฆฌกœ ˜ฎธด‹ค.
  • ›ณธ ปจํ…Œด„ˆ•ˆ— žˆ˜ ฐฒด“ค„ ‚ญ œํ•œ‹ค.
  • ›ณธ ปจํ…Œด„ˆ˜ ฉ”ชจฆฌ ํ•ด œํ•œ‹ค.

2.2. ํ—ทฐˆฆดˆ˜ žˆŠ” ปจํ…Œด„ˆ ํฌธฐ— €ํ•œ ฉ”†Œ“œ“ค

  • size() - ํ˜„žฌ ปจํ…Œด„ˆ— “ค–ด žˆŠ” ฐฒด˜ ˆ˜.(ตœŒ€Ÿ‰ •„‹˜)
  • capacity() - ํ˜„žฌ ํ• ‹˜–ด žˆŠ” ฉ”ชจฆฌ— ตœŒ€ ˆ˜šฉํ• ˆ˜ žˆŠ” ฐฒด ˆ˜
  • resize(n) - nฐœ „„ˆ˜ žˆฒŒ ฉ”ชจฆฌ žฌํ• ‹
    • nด ํ˜„žฌ size()ณด‹ค ž‘œฉด - —„œ€„ฐ size() - n งŒํ €šด‹ค.
    • nด ํ˜„žฌ size()ณด‹ค ํฌฉด - —„œ€„ฐ n - size() งŒํ˜ ˆ ณต„„ ถ”€ํ•œ‹ค.
    • nด ํ˜„žฌ capacity()ณด‹ค ํฌฉด - ฉ”ชจฆฌ žฌํ• ‹ํ•œ‹ค.
  • reserve() - ทธ ปจํ…Œด„ˆ˜ capacity ตœ†Œ nด ˜ฒŒ ํ• ‹.
    • vector—„œ งŒ•ฝ ํ˜„žฌ capacityณด‹ค nด ž‘‹คฉด? - Œฉ‹ค.
    • string—„œŠ” ? „€„ ชจฅธ‹ค.(--;)

2.3. ํฌธฐ œ €ํ•˜ณ  ‹ถ‹คฉด reserve ฉ”†Œ“œ ‚ฌšฉํ•˜ž.

  • reserve ‚ฌšฉํ•˜ฉด žฌํ• ‹, ฐ˜ณตž, ํฌธํ„ฐ, ฐธกฐ ““˜ ‹ „ ตœ†Œํ™” ‹œํ‚ฌˆ˜ žˆ‹ค.
  • reserveกœ ™•ฐฝ ํฌฒŒ žก•„ †“ณ  ‚˜ค‘— trim() จž. ˆณต„  œœ‹ค.



3. Item15. Be aware of variations in string implementations.




4. Item16. Know how to pass vector and string data to legacy APIS




5. Item17. Use 'the swap trick' to trim excess capacity.




6. Item18. Avoid using vector<bool>.

Valid XHTML 1.0! Valid CSS! powered by MoniWiki
last modified 2021-02-07 05:23:10
Processing time 0.0201 sec