U E D R , A S I H C RSS

STL/vector/Cook Book

์ž‘์„ฑ์ž : ["Lovelyboy^_^"]

๋ฒกํ„ฐ๋ฅผ ์‚ฌ์šฉํ•ด๋ณด๊ธฐ ์œ„ํ•œ ๊ธฐ๋ณธ ์…‹ํŒ…(์•ž์œผ๋กœ ํŽธ์˜์ƒ ๋ฐ˜๋ง๋กœ ํ•ฉ๋‹ˆ๋‹ค.)

~cpp 
#include <iostream>
#include <vector>
using namespace std;

int main()
{
	return 0;
}

  • ๋ช‡ ๋ฒˆ ์จ๋ณธ๊ฒฐ๊ณผ vector๋ฅผ ๊ฐ€์žฅ ์ž์ฃผ ์“ฐ๊ฒŒ ๋œ๋‹ค. vector๋งŒ ๋ฐฐ์›Œ ๋†“์œผ๋ฉด list๋‚˜ deque๊ฐ™์€๊ฒƒ์€ ๋˜‘๊ฐ™์ด ์“ธ์ˆ˜ ์žˆ๋‹ค. vector๋ฅผ ์“ฐ๊ธฐ ์œ„ํ•œ vector ํ—ค๋”๋ฅผ ํฌํ•จ์‹œ์ผœ์ค˜์•ผํ•œ๋‹ค. STL์„ ์“ธ๋ผ๋ฉด #include <iostream.h> ์ด๋ ‡๊ฒŒ ์“ฐ๋ฉด ๊ท€์ฐฎ๋‹ค. ๋‚˜์ค‘์— std::cout, std:vector ์ด๋Ÿฐ ์‚ฝ์งˆ์„ ํ•ด์ค˜์•ผ ํ•œ๋‹ค. ์ด๋ ‡๊ฒŒ ํ•˜๊ธฐ ์‹ซ์œผ๋ฉด ๊ฑ ์“ฐ๋˜๋Œ€๋กœ using namespace std ์ด๊ฑฐ ์จ์ฃผ์ž.

intํ˜• ๋ฐฐ์—ด์„ intํ˜• ๋ฒกํ„ฐ์— ๋ณต์‚ฌํ•ด ๋ณด์ž.

~cpp 
#include <iostream>
#include <vector>
using namespace std;

typedef vector<int>::iterator VIIT;	// Objectํ˜•์ด๋ผ๋ฉด typedef vector<Object>::iterator VOIT;

int main()
{
	int ar[10] = {45,12,76,43,75,32,85,32,19,98};	// Objectํ˜•์ด๋ผ๋ฉด Object ar[10]={...};

	vector<int> v(&ar[0], &ar[10]);		
		// Objectํ˜•์ด๋ผ๋ฉด vector<Object> v(...);
		// ar๋ฐฐ์—ด์˜ 0๋ฒˆ ์›์†Œ๋ถ€ํ„ฐ 9๋ฒˆ์›์†Œ๊นŒ์ง€๋ฅผ
		// v๋ฒกํ„ฐ์—๋‹ค๊ฐ€ ๋ณต์‚ฌ [0,10) ์ฒ˜์Œ์—” ํ๊ตฌ๊ฐ„
		// ๋งˆ์ง€๋ง‰์—” ๊ฐœ๊ตฌ๊ฐ„์ด๋ผ๋Š”๊ฑฐ ๋ช…์‹ฌ!

	for(VIIT it = v.begin() ; it != v.end(); ++it)	// ์ œ๋Œ€๋กœ ๋ณต์‚ฌ๋๋‚˜ ๊ฒฐ๊ณผ ๋ณด๊ธฐ
		cout << *it << endl;

	return 0;
}

  • typedef์œผ๋กœ ์‹œ์ž‘ํ•˜๋Š” ๋ถ€๋ถ„๋ถ€ํ„ฐ ๋ณด์ž. ์ผ๋‹จ ๋ฐ˜๋ณต์ž๋ผ๋Š” ๊ฐœ๋…์„ ์•Œ์•„์•ผ ๋˜๋Š”๋ฐ, ์‚ฌ์‹ค์€ ๋‚˜๋„ ์ž˜ ๋ชจ๋ฅธ๋‹ค.; ์ฒ˜์Œ ๋ฐฐ์šธ๋• ๊ทธ๋ƒฅ ์ผ์ข…์˜ ํฌ์ธํ„ฐ๋ผ๋Š” ๊ฐœ๋…์œผ๋กœ ๋ณด๋ฉด ๋œ๋‹ค. vector<int>::iterator ํ•˜๋ฉด intํ˜• vector์— ์ €์žฅ๋˜์–ด ์žˆ๋Š” ๊ฐ’์„ ์ˆœํšŒํ•˜๊ธฐ ์œ„ํ•œ ๋ฐ˜๋ณต์ž์ด๋‹ค. ๋น„์Šทํ•˜๊ฒŒ vector<Object>>::iterator ํ•˜๋ฉด Objectํ˜• vector์— ์ €์žฅ๋˜์–ด ์žˆ๋Š” ๊ฐ’์„ ์ˆœํšŒํ•˜๊ธฐ ์œ„ํ•œ ๋ฐ˜๋ณต์ž๊ฒ ์ง€ ๋ญ; ๊ฐ„๋‹จํ•˜๊ฒŒ ์ค„์—ฌ์“ธ๋ผ๊ณ  typedefํ•ด์ฃผ๋Š” ๊ฒƒ์ด๋‹ค. ํ•˜๊ธฐ ์‹ซ์œผ๋ฉด ์•ˆํ•ด์ค˜๋„ ๋œ๋‹ค.--;
  • ๋‹ค์Œ์—” vector<int> v~~ ์ด๋ถ€๋ถ„์„ ๋ณด์ž. vector<T> ์—๋Š” ์ƒ์„ฑ์ž๊ฐ€ ์—ฌ๋Ÿฟ ์žˆ๋‹ค. ๊ทธ ์ค‘์˜ ํ•˜๋‚˜๋กœ, ๋ฐฐ์—ด์„ ๋ณต์‚ฌํ•˜๋Š” ์ƒ์„ฑ์ž๋ฅผ ์จ๋ณด์ž. ๊ทธ๋ƒฅ ์“ฐ๋Š”๋ฒ•๋งŒ ๋ณด์ž. ๋‹จ์ˆœํžˆ ๋ฐฐ์—ด ๋ณต์‚ฌํ•˜๋Š” ๊ฑฐ๋‹ค. C++ ๊ณต๋ถ€ํ–ˆ๋‹ค๋ฉด ์„ฑ์•ˆ๋‹น 10์žฅ์ธ๊ฐ€ 11์žฅ์— ๋ณต์‚ฌ ์ƒ์„ฑ์ž๋ผ๊ณ  ๋‚˜์˜ฌ๊ฒƒ์ด๋‹ค. ๊ทธ๊ฑฐ๋‹ค.; ๊ทธ๋ƒฅ 2๋ฒˆ ์›์†Œ์—์„œ 5๋ฒˆ์›์†Œ๊นŒ์ง€ ๋ณต์‚ฌํ•˜๊ณ  ์‹ถ๋‹ค. ํ•˜๋ฉด vector<int> v(&ar2, &ar6) ์ด๋ ‡๊ฒŒ ํ•˜๋ฉด ๋˜๊ฒ ์ง€?(์–ด์งธ ์ข€ ๊ฑฐ๋งŒํ•ด ๋ณด์ธ๋‹ค.;) ๋งˆ์ง€๋ง‰์€ ๊ฐœ๊ตฌ๊ฐ„์ด๋ผ๋Š”๊ฑธ ๋ช…์‹ฌํ•˜๊ธฐ ๋ฐ”๋ž€๋‹ค.
  • for ๋ถ€๋ถ„์„ ๋ณด๋ฉด ์•ž์—์„œ typedef ํ•ด์ค€ VIIT ํ˜•์œผ๋กœ ์ˆœํšŒํ•˜๊ณ  ์žˆ๋Š”๊ฒƒ์„ ๋ณผ์ˆ˜ ์žˆ๋‹ค. vector<T>์˜ ๋ฉค๋ฒ„์—๋Š” ์—ด๋ผ ๋งŽ์€ ๋ฉค๋ฒ„ํ•จ์ˆ˜๊ฐ€ ์žˆ๋‹ค. ๊ทธ์ค‘์— begin() ์€ ๋งจ ์ฒ˜์Œ ์œ„์น˜๋ฅผ ๊ฐ€๋ฅดํ‚ค๋Š” ๋ฐ˜๋ณต์ž๋ฅผ ๋ฆฌํ„ดํ•ด์ค€๋‹ค. ๋‹น์—ฐํžˆ end()๋Š” ๋งจ ๋ ์œ„์น˜๋ฅผ ๊ฐ€๋ฅดํ‚ค๋Š” ๋ฐ˜๋ณต์ž๋ฅผ ๋ฆฌํ„ดํ•ด์ฃผ๋Š” ๊ฑฐ๋ผ๊ณ  ์ƒ๊ฐํ•˜๊ฒ ์ง€๋งŒ ์•„๋‹ˆ๋‹ค.--; ์ •ํ™•ํ•˜๊ฒŒ๋Š” '๋งจ ๋์œ„์น˜๋ฅผ ๊ฐ€๋ฅดํ‚ค๋Š” ๋ถ€๋ถ„์—์„œ ํ•œ ์นธ ๋”๊ฐ„ ๋ฐ˜๋ณต์ž๋ฅผ ๋ฆฌํ„ด'ํ•ด์ฃผ๋Š” ๊ฑฐ๋‹ค. ์™œ ๊ทธ๋ ‡๊ฒŒ ๋งŒ๋“ค์—ˆ๋Š”์ง€๋Š” ๋‚˜ํ•œํ…Œ ๋ฌป์ง€ ๋ง๋ผ. ์•„๊นŒ ๋ฐ˜๋ณต์ž๋Š” ํฌ์ธํ„ฐ๋ผ๊ณ  ์ƒ๊ฐํ•˜๋ผ ํ–ˆ๋‹ค. ์—ญ์‹œ ๊ทธ ํฌ์ธํ„ฐ๊ฐ€ ๊ฐ€๋ฅดํ‚ค๋Š” ๊ฐ’์„ ๋ณด๋ ค๋ฉด ๋‹น์—ฐํžˆ ์•ž์— * ์„ ๋ถ™์—ฌ์•ผ๊ฒ ์ง€.
  • ๋ฒกํ„ฐ๋กœ ๋™์  ๋ฐฐ์—ด ์“ฐ๊ธฐ

    • ์•„๋งˆ ์ดˆ๋ณด์ž๋•Œ ๋ˆ„๊ตฌ๋‚˜ ํ•˜๋Š” ์‹ค์ˆ˜๊ฐ€ ์žˆ์„ ๊ฒƒ์ด๋‹ค. ๋ณธ์ธ๋„ ๊ทธ๋žฌ๋‹ค.--;
    • ์˜ˆ์ œ๋กœ ์ˆซ์ž๋ฅผ ๋ช‡๊ฐœ ์ž…๋ ฅ๋ฐ›๋‚˜ ๊ฐฏ์ˆ˜๋ฅผ ์ž…๋ ฅ๋ฐ›์€ ๋งŒํผ, ๊ทธ๋งŒํผ ๋ฃจํ”„๋ฅผ ๋Œ๋ ค์„œ ์ˆซ์ž๋ฅผ ์ž…๋ ฅ๋ฐ›๋Š” ๊ฑธ ๋ณด์ž.

    ~cpp 
    #include <iostream>
    using namespace std;
    
    int main()
    {
    	int num;
    	cin >> num;
    
    	int ar[num];
    
    	for(int i = 0 ; i < num ; ++i)
    	{
    		cout << i+1 << "๋ฒˆใ…คใ…‰ใ…’ใ…ค" << endl;	
    		cin >> ar[i];
    	}
    	return 0;
    }
    
    • ์ž ์–ด๋””๊ฐ€ ํ‹€๋ ธ์„๊นŒ? ๊ณต๋ถ€ ์ข€ ํ–ˆ์œผ๋ฉด ๋ˆ„๊ตฌ๋‚˜ ์•Œ์ˆ˜ ์žˆ๋Š” ์‚ฝ์งˆ์ด์ง€๋งŒ, c++ ๋ฐฐ์šด์ง€ ๋ช‡์ฃผ๋ฐ–์— ์•ˆ๋˜์—ˆ์—ˆ๋˜ ๋‚˜๋กœ์„œ๋Š” ์ €๊ฒŒ ์™œ ํ‹€๋ ธ๋Š”์ง€ ์•Œ์ˆ˜๊ฐ€ ์—†์—ˆ๋‹ค.
    • ์›์ธ์€ ๊ทธ๊ฑฐ๋‹ค. ์ •์  ๋ฐฐ์—ด์€ ์ปดํŒŒ์ผ ์‹œ์— ํฌ๊ธฐ๋ฅผ ์žก๋Š”๋‹ค. ์ž…๋ ฅ๋ฐ›๋Š” ๋ถ€๋ถ„์€ ์ปดํŒŒ์ผ ๋๋‚˜๊ณ  ์‹คํ–‰ํ• ๋•Œ ํฌ๊ธฐ๋ฅผ ์ž…๋ ฅ๋ฐ›๋Š”๋‹ค. ์ปดํŒŒ์ผ๋Ÿฌ๋Š” ๋‹น์—ฐํžˆ ํฌ๊ธฐ๋ฅผ ์•Œ์ˆ˜ ์—†์œผ๋‹ˆ ์—๋Ÿฌ๊ฐ€ ๋‚˜๊ฒŒ๋œ๋‹ค. ๊ณ ์ณ ๋ณด์ž.

    ~cpp 
    #include <iostream>
    using namespace std;
    
    int main()
    {
    	int num;
    	cin >> num;
    
    	int* ar = new int[num];
    
    	for(int i = 0 ; i < num ; ++i)
    	{
    		cout << i+1 << "๋ฒˆใ…คใ…‰ใ…’ใ…ค : ";	
    		cin >> ar[i];
    	}
    	
    	delete [] ar;
    
    	return 0;
    }
    
    • ์šฐ๋ฆฌ๊ฐ€ ์—ฌํƒœ๊นŒ์ง€ ๋ฐฐ์šด ๊ฑฐ๋งŒ ์จ๋ณด๋ฉด ์ด๋ ‡๊ฒŒ ๊ณ ์น ์ˆ˜ ์žˆ๋‹ค. ๊ทธ ์œ ๋ช…-_-ํ•œ ๋™์ ๋ฐฐ์—ด์ด๋‹ค.--; ์•„.. delete [] ์ €๊ฑฐ ๋ณด๊ธฐ ์‹ซ์ง€ ์•Š์€๊ฐ€? c์™€ c++์˜ ๊ณ ์งˆ์ ์ธ ๋ฌธ์ œ์ ์ด ๋ฐ”๋กœ ์ €๊ฑฐ๋‹ค. ๋ฉ”๋ชจ๋ฆฌ ๊ด€๋ฆฌ๋ฅผ ํ”„๋กœ๊ทธ๋ž˜๋จธ๊ฐ€ ํ•ด์ค˜์•ผ ํ•œ๋‹ค๋Š”๊ฑฐ.. ์ž๋ฐ” ๊ฐ™์€๊ฑด ์ง€๊ฐ€ ์•Œ์•„์„œ delete ํ•ด์ฃผ์ง€๋งŒ.. c๋‚˜ c++์—์„œ delete ์•ˆํ•ด์ฃผ๋ฉด.. X๋˜๋Š” ๊ผด์„ ๋ณผ์ˆ˜ ์žˆ๋‹ค. (๋ณธ์ธ์ด ํ•œ๋ฒˆ ๊ฒฝํ—˜ํ•ด ๋ดค๋‹ค.) ๊ทธ๋ž˜์„œ ์ž˜ ๋””์ž์ธ๋œ ํด๋ž˜์Šค๋Š” ํด๋ž˜์Šค ๋‚ด์—์„œ ์•Œ์•„์„œ ์—†์• ์ค˜์•ผ ํ•œ๋‹ค. ๋ฐ”๋กœ vector๋ฅผ ์“ฐ๋ฉด ์ € ์ง“์„ ์•ˆํ•ด์ค˜๋„ ๋œ๋‹ค. ๋˜ ๊ณ ์ณ๋ณด์ž.

    ~cpp 
    #include <iostream>
    #include <vector>
    using namespace std;
    
    int main()
    {
    	int num;
    	cin >> num;
    
    	vector<int> ar(num);
    
    	for(int i = 0 ; i < ar.size() ; ++i)
    	{
    		cout << i+1 << "๋ฒˆใ…คใ…‰ใ…’ใ…ค : ";	
    		cin >> ar[i];
    	}
    
    	return 0;
    }
    

  • vector<int>... ๋ถ€๋ถ„์„ ๋ณด๋ฉด ๋˜ ๋‹ค๋ฅธ ์ƒ์„ฑ์ž๊ฐ€ ๋ณด์ธ๋‹ค. ์ธ์ž๋กœ ์ˆซ์ž ํ•˜๋‚˜๋ฅผ ๋ฐ›๋Š”๋‹ค. ๊ทธ ๋งŒํผ ๋™์  ํ• ๋‹น ํ•ด์ค€๋‹ค๋Š” ๋œป์ด๋‹ค. delete? ๊ทธ๋”ด๊ฑฐ ์•ˆํ•ด์ค˜๋„ ๋œ๋‹ค. ํ”„๋กœ๊ทธ๋žจ ๋๋‚˜๋ฉด์„œ intํ˜• ๋ฒกํ„ฐ ar์ด ์†Œ๋ฉธ๋˜๋ฉด์„œ ์•Œ์•„์„œ ์—†์• ์ค€๋‹ค.
  • ๋˜ ํ•˜๋‚˜ ์‚ดํŽด๋ณผ๊ฒŒ ์žˆ๋‹ค. ์•„๊นŒ ์˜ˆ์ œ์—์„œ๋Š” ๋ฐ˜๋ณต์ž๋กœ ๋ฒกํ„ฐ ๋‚ด๋ถ€๋ฅผ ์ˆœํšŒํ–ˆ์—ˆ๋‹ค. ํ•˜์ง€๋งŒ ๋ฒกํ„ฐ๋Š” ์ž„์˜์ ‘๊ทผ์„ ํ—ˆ์šฉํ•œ๋‹ค. ๋ฐฐ์—ด์ฒ˜๋Ÿผ ar4 ์ด๋Ÿฐ์‹์œผ๋กœ ์“ธ์ˆ˜ ์žˆ๋‹จ ๋ง์ด๋‹ค. ํŽธํ•œ๋Œ€๋กœ ์จ์ฃผ์ž.
  • ๋ฒกํ„ฐ๋กœ 2์ฐจ์› ๋™์  ๋ฐฐ์—ด ์“ฐ๊ธฐ

    • ๋ฐ๋ธ”์Šค ์บ ํ”„๋•Œ ์œ ๋ช…ํ•ด์ง„ 2์ฐจ์› ๋™์  ๋ฐฐ์—ด ์“ฐ๊ธฐ๋‹ค.
    • ํŒŒ์Šค์นผ ์‚ผ๊ฐํ˜• ์ˆ™์ œํ• ๋•Œ ๋ฐ๋ธŒํ”ผ์•„์—์„œ ์“ฐ๋Š”๋ฒ• ๋ฐฐ์›Œ์„œ ์—ด์‹ฌํžˆ ์“ฐ๋‹ค๊ฐ€ ๋ฐ๋ธ”์Šค ์บ ํ”„๋•Œ ์žฌ๋™์ด๊ฐ€ ํผ๋œจ๋ ธ๋‹ค. 1ํ•™๊ธฐ ๋‚ด๋‚ด ํŽธํ•ด์„œ ์ข‹๋‹ค๊ณ  ์จ๋Œ”๋Š”๋ฐ.. ์ง€๊ธˆ ๋ณด๋ฉด ๋‚ด๊ฐ€ ์ €๊ฑธ ์™œ ์“ฐ๊ณ  ์žˆ์—ˆ์„๊นŒ ํ•˜๋Š” ์ƒ๊ฐ์ด ๋“ ๋‹ค.
    • vector๋กœ ๊ฐ„๋‹จํžˆ ํ•ด๊ฒฐ์ด ๊ฐ€๋Šฅํ•˜๋‹ค. See also RandomWalk2/Vector๋กœ2์ฐจ์›๋™์ ๋ฐฐ์—ด๋งŒ๋“ค๊ธฐ
    • resize() ๋ฉ”์†Œ๋“œ๋Š” ๋ฒกํ„ฐ์˜ ํฌ๊ธฐ๋ฅผ ๋‹ค์‹œ ์žก์•„์ฃผ๋Š” ์—ญํ• ์„ ํ•œ๋‹ค. ์ž˜ ์“ฐ์ž

    Pointer๋ฅผ ์ €์žฅํ•˜๋Š” Container

    • container ์— ๊ฐ’์ด ์ €์žฅ๋ ๋•Œ๋Š” ๋ณต์‚ฌ ๊ณผ์ •์ด ์ˆ˜ํ–‰๋œ๋‹ค. ๊ทธ๋ž˜์„œ ๊ฐ’์ด ๊ฐ„๋‹จํ•œ int, doubleํ˜• ์— ๋Œ€ํ•œ containter๋Š” ๊ทธ๋ ‡๊ฒŒ ๋ฌธ์ œ๊ฐ€ ๋˜์ง€ ์•Š๋œ๋‹ค.
    • ๋ฉ์น˜๊ฐ€ ํฐ ์ž๋ฃŒํ˜•์„ container์— ์ €์žฅํ• ๋•Œ ๋งˆ๋‹ค ๋ณต์‚ฌ๊ฐ€ ์ˆ˜ํ–‰๋œ๋‹ค๋ฉด, ๋งŽ์€ ๋‚ญ๋น„๊ฐ€ ๋ฐœ์ƒํ•œ๋‹ค.
      • ์—ฌ๊ธฐ์„œ ์žก๋‹ด ํ•˜๋‚˜. ๊ฐ์ฒด๋ฅผ parameter๋กœ ๋„˜๊ธธ๋•Œ๋„ ๋ณต์‚ฌ๊ฐ€ ์ˆ˜ํ–‰๋˜์ง€ ์•Š๋Š” ์ฐธ์กฐ๋ฅผ ์‚ฌ์šฉํ•˜์ž.
        ~cpp 
        Func(const Obj& obj) 
        
    • ๊ทธ๋ž˜์„œ pointer๋งŒ์„ ์ด์šฉํ•ด์„œ ์ €์žฅํ•˜์ž. ํ•˜์ง€๋งŒ ์“ธ๋ชจ ์—†๋Š” ๊ฐ์ฒด๋Š” ์šฐ๋ฆฌ๊ฐ€ ์ง€์›Œ์ค˜์•ผ ํ•œ๋‹ค. ํฌ์ธํ„ฐ๋ฅผ ๋„ฃ์–ด์ค„๋•Œ์—๋Š”, ์ปจํ…Œ์ด๋„ˆ๊ฐ€ ์†Œ๋ฉธ๋ ๋•Œ๋Š” ํฌ์ธํ„ฐ๋“ค์€ ์ง€์›Œ์ง€๊ฒ ์ง€๋งŒ. ๊ทธ ํฌ์ธํ„ฐ๋“ค์ด ๊ฐ€๋ฅดํ‚ค๋Š” ๊ฐ’๋“ค์€ ์ง€์›Œ์ง€์ง€ ์•Š๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.
    • ๋‹ค์Œ ์˜ˆ์ œ๋Š” pointer๋กœ ์ž๋ฃŒ๋ฅผ ๋„ฃ๊ณ , ์ง€์šฐ๋Š” ์˜ˆ์ œ์ด๋‹ค.
      ~cpp 
       #include <iostream> 
      #include <string> 
      #include <vector> 
      using namespace std; 
      
      class Obj 
      { 
      private: 
      	int a; 
      	string c; 
      public: 
      	Obj(int n, const string& str) : a(n), c(str) {} 
      	void showMember() 
      	{ 
      		cout << a << " " 
      			<< c << endl; 
      	} 
      };
      typedef vector<Obj*>::iterator VOIT; 
      
      int main() 
      { 
      	vector<Obj*> v; // ํฌ์ธํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” vector
      	
      	// ๋ฒกํ„ฐ์— Obj๊ฐ์ฒด๋“ค์˜ ํฌ์ธํ„ฐ๋ฅผ ๋„ฃ๋Š”๋‹ค. 
      	v.push_back(new Obj(1, "๊ธธ๋™")); 
      	v.push_back(new Obj(3, "ํ—ˆ์ค€")); 
      	v.push_back(new Obj(5, "์ œ๋งˆ")); 
      	
      	// ์ˆœํšŒํ•˜๋ฉด์„œ showMember ๋ฉ”์†Œ๋“œ ํ˜ธ์ถœํ•˜๊ณ 
      	for(VOIT it = v.begin() ; it != v.end() ; ++it)
      		(*it)->showMember();
      	
      	// ์ˆœํšŒํ•˜๋ฉด์„œ ๊ฐ€๋ฆฌํ‚ค๋Š” ๊ฐ’๋“ค์„ ์ง€์šด๋‹ค.
      	for(it = v.begin() ; it != v.end() ; ++it)
      		delete *it;
               v.clear();
      	return 0; 
      } 
      

    ํ•˜๊ณ  ์‹ถ์€ ๋ง

    • ํ . ๋ณ„๋ฃจ ์–ด๋ ค์šด๊ฑด ์—†๊ฒ ์ง€
    • ์ด๊ฒŒ ์ œ๊ฐ€ ์•Œ๊ณ  ์žˆ๋Š” STL์— ๋Œ€ํ•œ ๊ฒ๋‹ˆ๋‹ค. ๋‚˜๋จธ์ง€๋‚˜ ๋” ์ž์„ธํžˆ ์•Œ๊ณ  ์‹ถ์œผ์‹ ๋ถ„์€ ์ฑ…์„ ๋ณด์‹œ๋“ ์ง€..; MSDN์„ ์ฐธ๊ณ ํ•˜์„ธ์š”. ๊ทผ๋ฐ ์ด์ •๋„๋งŒ ์•Œ์•„๋„.. ์™ ๋งŒํ•œ๊ฑด ๋‹ค ํ•ฉ๋‹ˆ๋‹ค. C++๋งŒ๋“  ๊ทธ ์ด๋ฆ„ ์–ด๋ ค์šด ์‚ฌ๋žŒ BJar... Str...(;) ์ด ์‚ฌ๋žŒ์ด ์“ฐ๊ณ  ์‹ถ์€ ๊ธฐ๋Šฅ๋งŒ ์“ฐ๋žฌ๊ฑฐ๋“ ์š”--; ์ž๋ฐ”๊ฐ€ ์“ฐ๊ธฐ๋Š” ์‰ฌ์›Œ๋„ ์—ญ์‹œ ๋‚œ c++์ด ์ข‹๋‹ค.
    • ๋…ธํŒŒ์‹ฌ์—์„œ ๋งํ•˜๋Š” ๊ฑด๋ฐ.. ํ•จ์ˆ˜๋กœ ๊ฐ์ฒด๋ฅผ ๋„˜๊ธธ๋•Œ๋Š” ๊ผญ ์ฐธ์กฐ! ์ฐธ์กฐ! ์ž…๋‹ˆ๋‹ค. ๊ฐ’์ด ์•ˆ ๋ฐ”๋€Œ๋ฉด ๊ผญ const ์จ์ฃผ์‹œ๊ตฌ์—ฌ. ์ฐธ์กฐ ์•ˆ ์“ฐ๊ณ  ๊ฐ’ ์“ฐ๋ฉด ์–ด๋–ป๊ฒŒ ๋˜๋Š”์ง€ ์ดํŽ™ํ‹ฐ๋ธŒ C++์— ์ž˜ ๋‚˜์™€ ์žˆ์Šต๋‹ˆ๋‹ค.(์ฑ… ์„ ์ „ ์ ˆ๋Œ€ ์•„๋‹˜) ๋ณต์‚ฌ ์ƒ์„ฑ์ž๋ฅผ 10๋ฒˆ ๋„˜๊ฒŒ ํ˜ธ์ถœํ•œ๋‹ค๋Š” ๊ฑธ๋กœ ๊ธฐ์–ตํ•จ.
    • C++์—์„œ๋Š” ๊ตฌ์กฐ์ฒด์—์„œ๋„ ์ƒ์„ฑ์ž๊ฐ€ ๋˜๋”๊ตฐ์š”.--;
      • ๊ตฌ์กฐ์ฒด์—์„œ ํ•จ์ˆ˜์—ญ์‹œ ๊ฐ€๋Šฅํ•˜๊ณ , constructor, destructor์—ญ์‹œ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ๋‹ค๋งŒ class์™€ ์ฐจ์ด์ ์€ ์ƒ์†์ด ์•ˆ๋˜๊ณ , ๋‚ด๋ถ€ ํ•„๋“œ๋“ค์ด public์œผ๋กœ ๋˜์–ด ์žˆ์Šต๋‹ˆ๋‹ค. ์ƒ์†์ด ์•ˆ๋˜์„œ ํŒŒ์ƒํ•˜๋Š” ๋ถ„์ œ๋“ค์— ๊ด€ํ•ด์„œ๋Š” ํ•™๊ต C++๊ต์ œ ์ƒ์† ๋ถ€๋ถ„๊ณผ virtual ํ•จ์ˆ˜ ๊ด€๋ จ ๋ถ€๋ถ„์˜ ๋™์  ๋ฐ”์ธ๋”ฉ ๋ถ€๋ถ„์„ ์ฐธ๊ณ  ํ•˜์‹œ๊ธฐ ๋ฐ”๋žŒ๋‹ˆ๋‹ค.--์ƒ๋ฏผ
    • ๊ธ€๊ตฌ.. ์š”๊ฒƒ๋„ ๋ณ„๊ฑฐ ์•„๋‹Œ ํŒ์ด๊ธด ํ•œ๋ฐ.. i++๊ณผ ++i์˜ ์ฐจ์ด์ ์€ ๋‹ค ์•„์‹œ์ฃ ? ๊ทผ๋ฐ ์นด์šดํŠธํ•˜๊ฑฐ๋‚˜ ๋ฃจํ”„๋ฅผ ๋Œ๋•Œ๋Š” ์ฐจ์ด๊ฐ€ ์—†๋‹ค๊ณ  ๋ด๋„ ์ข‹์Šต๋‹ˆ๋‹ค. ++i๊ฐ€ i++๋ณด๋‹ค ์„ฑ๋Šฅ์ด ์ข‹๋‹ค๊ณ  ํ•˜๋„ค์š”.(see also i++VS++i ์ด๊ฑด ๋ญ..~ ๋ง˜๋Œ€๋กœ ํ•˜์„ธ์š”^^
    • 02 ์—ฌ๋Ÿฌ๋ถ„ c++๊ณต๋ถ€ ์—ด์‹ฌํžˆ ํ•ด์š”~
    ----
    STL/vector
    Valid XHTML 1.0! Valid CSS! powered by MoniWiki
    last modified 2021-02-07 05:27:58
    Processing time 0.0084 sec