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

์•Œ๊ณ ๋ฆฌ์ฆ˜

c++ vector / python list ํ•จ์ˆ˜ ์ •๋ฆฌ

python์— ์‰ฝ๊ฒŒ ์ ์‘ํ•˜๊ธฐ ์œ„ํ•ด

๊ธฐ์กด์— ์‚ฌ์šฉํ•˜๋ฉด C++์˜ ์ž๋ฃŒ๊ตฌ์กฐ ํ•จ์ˆ˜๋“ค์„ python๊ณผ ๋น„๊ตํ•ด๋ณด๋ ค ํ•œ๋‹ค

 

์ฒซ ๋ฒˆ์งธ๋Š” c++์˜ vector์™€ ๊ทธ์™€ ๋น„์Šทํ•œ ์šฉ๋„๋กœ ์“ฐ์ด๋Š” list๋ฅผ ๋น„๊ตํ•ด๋ณด์•˜๋‹ค

 

  c++ <vector> python list
์„ ์–ธ vector <int> v; a = []
์ดˆ๊ธฐ๊ฐ’ ์„ค์ • fill(v.begin(), v.end(), -1); a = [-1 for i in range(100)]
์ถ”๊ฐ€ v.push_back(5); a.append(5)
์ค‘๊ฐ„ ์š”์†Œ ์‚ญ์ œ v.erase(v.begin()+5); del a[5]
๋งจ๋’ค ์š”์†Œ ์‚ญ์ œ v.pop_back(); a.pop()
๊ธธ์ด v.size(); len(a)
์ •๋ ฌ sort(v.begin(), v.end()); a.sort()
๋น„์–ด์žˆ๋Š”์ง€ ํ™•์ธ v.empty(); bool(a) true๋ผ๋ฉด ๋นˆ ๋ฆฌ์ŠคํŠธ
์œ„์น˜ ๋’ค์ง‘๊ธฐ reverse(v.begin(), v.end()); a.reverse()
์œ„์น˜ ๋ฐ˜ํ™˜(index) find(v.begin(), v.end(), num) - v.begin(); a.index("abc")
์š”์†Œ์˜ ๊ฐฏ์ˆ˜ ์„ธ๊ธฐ count(v.begin(), v.end(), num) a.count("abc")
์ธ๋ฑ์Šค -1 ์˜ค๋ฅ˜ a[-1] ์€ ๋ฆฌ์ŠคํŠธ์˜ ๋งˆ์ง€๋ง‰ ์š”์†Œ๊ฐ’
์ดˆ๊ธฐํ™” v.clear(); a.clear() ํ˜น์€ a = []
๋‘ ๋ณ€์ˆ˜ ํ•ฉ์น˜๊ธฐ  v1.insert( v1.end(), v2.begin(), v2.end()); a1 + a2
[4,5] ํ•ฉ์น˜๊ธฐ   a.extend([4,5])
์ฒซ๋ฒˆ์งธ๋กœ ๋‚˜์˜ค๋Š” ์š”์†Œ 4 ์‚ญ์ œ   a.remove(4)
0๋ฒˆ ์œ„์น˜์— 4 ์‚ฝ์ž… v.insert(v.begin(), 4); a.insert(0, 4)

 

python์˜ ํŽธ๋ฆฌํ•œ ์ 

  • vector๋Š” ์ฒ˜์Œ ์„ ์–ธ ์‹œ ์ž๋ฃŒํ˜•์„ ์ง€์ •ํ•˜๊ณ  ๋ชจ๋“  ๋ฐ์ดํ„ฐ๊ฐ€ ๊ฐ™์€ ํ˜•์‹์„ ๋”ฐ๋ผ์•ผ ํ•œ๋‹ค. ๊ทธ์— ๋น„ํ•ด list๋Š” ๋‚ด๋ถ€์˜ ์ž๋ฃŒํ˜•์ด ์ž์œ ๋กญ๋‹ค
  • list๋ฅผ set์ธ ์ง‘ํ•ฉ ์ž๋ฃŒํ˜•์œผ๋กœ ๋ณ€๊ฒฝ์ด ๊ฐ„ํŽธํ•˜๋‹ค
    • a_set = set(a)
    • ์ง‘ํ•ฉ ์ž๋ฃŒํ˜•์œผ๋กœ ๋ณ€๊ฒฝํ–ˆ์„๋•Œ list์•ˆ์˜ ์ค‘๋ณต ๊ฐ’์„ ๊ฐ„ํŽธํ•˜๊ฒŒ ์ œ๊ฑฐํ•  ์ˆ˜ ์žˆ๋‹ค.
๋ฐ˜์‘ํ˜•