데이터 구조 vector ~ 기본 조작

36749 단어
Vector 의 총화 와 이해
  • vector 구 조 를 사용 하려 면 헤더 파일 에 #include 를 더 해 야 합 니 다.
  • vector 가 사용 할 수 있 는 점 은 한 문제 가 데이터 의 길 이 를 정 하지 않 았 을 때 배열 로 배열 을 얼마나 정의 해 야 하 는 지 확인 하기 어 려 울 때 vector 로 배열 을 대체 하여 해결 할 수 있 습 니 다. vector 는 줄 과 열 을 일정 하지 않 게 할 수 있 습 니 다.
  • 가 변 적 인 열 vector 를 정의 합 니 다 vectorpile. 이것 은 길이 가 정 해 지지 않 은 pile 배열 을 정의 하 는 것 과 같 습 니 다.
  • 가 변 적 인 열 과 줄 의 vector 방식 을 정의 합 니 다
  •          vector
    vector<vector<int> > pile           
    vector<<int>>         
    

    1 차원 vector 의 출력 과 입력
    	
    	vector<int>pile;
    	for(int i=0;i<10;i++)
    	{
    		pile.push_back(i);//pile       
    	 } 
    	 for(int i=0;i<10;i++)
    	 {
    	 	printf("%d
    "
    ,pile[i]); } int Len=pile.size();// printf("%d",Len);

    1 차원 vector 의 성명 과 할당:
     vector<int>pile(10)10   。 
     vector<int>pile          。 
     vector<int>pile(10,2)         10      2.
     vector<int>Lemon
          ,         ,     0.
     vector<int> Lemon(5)       5     
        vector<int> Lemon=5; 
     vector<int> Lemon(5,2),       52.
     vector<int> Lemon={1,2,3,4,5,6}

    vector 를 0 으로 초기 화 하 는 올 바른 방식;
    //    
    vector<int> Lemon[100];
    	 	memset(Lemon,10,sizeof(Lemon));//        vector         。
    		 for(int i=0;i<10;i++)
    		 {
    		 	for(int d=0;d<10;d++)
    			 {
    			 	printf("%d
    "
    ,Lemon[i][d]); } } // vector<int> Lemon[100]; for(int d=0;d<10;d++) for(int i=0;i<10;i++) { Lemon[d].push_back(0); } for(int i=0;i<10;i++) for(int d=0;d<10;d++) printf("%d
    "
    ,Lemon[i][d]);

    2 차원 vector 의 정의 와 초기 화 주의사항:
  • vector 2 차원 배열 의 주 의 를 정의 합 니 다
  • 	         vector
    	vector<vector<int> > pile           
    	vector<<int>>         
    
  • 2 차원 배열 의 초기 방법
  • //      vector        
    		   int num=10;//    
    		   int num1=5; //  。 
    		   vector<vector<int> >Lemon(num,vector<int>());
    		   for(int i=0;i<num;i++)
    		   {
    		   	Lemon[i].resize(num1);
    		   }
    		   for(int i=0;i<10;i++)
    		   for(int d=0;d<5;d++)
    		   {
    		   	printf("%d
    "
    ,Lemon[i][d]); }
  • 배열 과 vector 의 결합:
  • //    vector      
    			int a[3]={1,2,3};
    			vector <int> Lemon(a,a+3);
    			for(int i=0;i<3;i++)
    			{
    				cout << Lemon[i] << endl;
    			 }
    			 
    

    vector 의 기본 동작:
  • 용량 조작:
  • vector<int>Lemon;
    			 for(int i=0;i<100;i++)
    			 {
    			 	Lemon.push_back(0);//       
    			  } 
    			  cout << Lemon.size() << endl;//    
    			  cout << Lemon.max_size() << endl;//        
    			  cout << Lemon.capacity() << endl;//  vector      
    			  cout << Lemon.empty() << endl; //   vector     
    			  
    
  • resize 의 용법: resize vector size, capacity。 size capacity , capacity , ; ,capacity ,
  • 		   int num=10;//    
    		   int num1=5; //  。 
    		   vector<vector<int> >Lemon(num,vector<int>());
    		   for(int i=0;i<num;i++)
    		   {
    		   	Lemon[i].resize(num1);
    		   }
    		   for(int i=0;i<10;i++)
    		   for(int d=0;d<5;d++)
    		   {
    		   	printf("%d
    "
    ,Lemon[i][d]); }
  • vector 의 수정:
  • vector<int>Lemon;
    			 int a[5]={1,2,3,4,5};
    			   Lemon.assign(a,a+5);
    			   //Lemon.assign(  begin,  last) ,       
    			   cout << Lemon[3] << endl;
    			   /* 
    			   Lemon.push_back(4);//       
    			   cout << Lemon[5] << endl;
    			   */
    			   
    			   /*
    			   Lemon.pop_back();//      。 
    			   cout << Lemon[4] << endl; 
    			   */
    		/*
    			    vector  ::iterator it;// 
    			   Lemon.erase(Lemon.begin(),Lemon.end());//        
    			   for(int i=0;i<4;i++)
    			   {
    			   	printf("%d
    ",Lemon[i]); } cout << Lemon.size() << endl; // */
    /* Lemon.clear();// for(int i=0;i<4;i++) { cout << Lemon[i] << endl; } cout << Lemon.size() << endl; */ vector <int> ::iterator it; /* it=Lemon.begin(); Lemon.insert(it+1,5);// Lemon[1] 5, for(int i=0;i<6;i++) { cout << Lemon[i] << endl; } */ /* it=Lemon.begin(); Lemon.insert(it,2,3);// 2 3; for(int i=0;i<7;i++) { cout << Lemon[i] << endl; } */ it=Lemon.begin(); int x[2]={0}; Lemon.insert(it,x,x+2);// for(int i=0;i<7;i++) { cout << Lemon[i] << endl; }

    총 코드:
    #include
    #include
    #include
    #include
    #include
    using namespace std; 
    int main()
    {
    	//          vector
    	//vector > pile           
    	//vector<>         
    	
    	//       vector pile[10];//       ,       ; 
    	// vectorpile(10)       ,  10   。 
    	//vectorpile          。 
    	// vectorpile(10,2)         10      2.
    	
    	/*
    	vectorLemon
    	     ,         ,     0. 
    	*/ 
    	
    	
    	
    	/*
    	vectorpile;
    	for(int i=0;i<10;i++)
    	{
    		pile.push_back(i);//pile       
    	 } 
    	 for(int i=0;i<10;i++)
    	 {
    	 	printf("%d
    ",pile[i]); } int Len=pile.size();// printf("%d",Len); */
    /* vector Lemon(5) 5 vector Lemon=5; vector Lemon(5,2), 5 , 2. vector Lemon={1,2,3,4,5,6} 。 */ /* vector Lemon[100]; /*memset(Lemon,10,sizeof(Lemon));// vector 。 for(int i=0;i<10;i++) { for(int d=0;d<10;d++) { printf("%d
    ",Lemon[i][d]); } }*/
    /* vector Lemon[100]; for(int d=0;d<10;d++) for(int i=0;i<10;i++) { Lemon[d].push_back(0); } for(int i=0;i<10;i++) for(int d=0;d<10;d++) printf("%d
    ",Lemon[i][d]); */
    // vector /* int num=10;// int num1=5; // 。 vector >Lemon(num,vector()); for(int i=0;i // vector /* int a[3]={1,2,3}; vector Lemon(a,a+3); for(int i=0;i<3;i++) { cout << Lemon[i] << endl; } */ // vector /* vectorLemon; for(int i=0;i<100;i++) { Lemon.push_back(0);// } cout << Lemon.size() << endl;// cout << Lemon.max_size() << endl;// cout << Lemon.capacity() << endl;// vector cout << Lemon.empty() << endl; // vector */ // resise /* int num=10;// int num1=5; // 。 vector >Lemon(num,vector()); for(int i=0;i // 2: vector<int>Lemon; int a[5]={1,2,3,4,5}; Lemon.assign(a,a+5); //Lemon.assign( begin, last) , cout << Lemon[3] << endl; /* Lemon.push_back(4);// cout << Lemon[5] << endl; */ /* Lemon.pop_back();// 。 cout << Lemon[4] << endl; */ /* vector ::iterator it;// Lemon.erase(Lemon.begin(),Lemon.end());// for(int i=0;i<4;i++) { printf("%d
    ",Lemon[i]); } cout << Lemon.size() << endl; // */
    /* Lemon.clear();// for(int i=0;i<4;i++) { cout << Lemon[i] << endl; } cout << Lemon.size() << endl; */ vector <int> ::iterator it; /* it=Lemon.begin(); Lemon.insert(it+1,5);// Lemon[1] 5, for(int i=0;i<6;i++) { cout << Lemon[i] << endl; } */ /* it=Lemon.begin(); Lemon.insert(it,2,3);// 2 3; for(int i=0;i<7;i++) { cout << Lemon[i] << endl; } */ it=Lemon.begin(); int x[2]={0}; Lemon.insert(it,x,x+2);// for(int i=0;i<7;i++) { cout << Lemon[i] << endl; } }

    좋은 웹페이지 즐겨찾기