Â
C++ã®vector<>ã³ã³ããã¯ãCè¨èªã®é åã¨ä¼¼ã¦ãã¾ãããé åãããããªãæ±ããããã§ãã
ä¾ãã°ãvector<>ã®ãµã¤ãºãæèããã¨ããå é è¦ç´ ã示ãbegin()ãæå¾ã®è¦ç´ ã示ãend()ãªã©ã
vector<>ã³ã³ãããæä½ããé¢æ°ãããããããã¾ãã
ããã§ã¯ãvector<>ã³ã³ããã®ä½¿ãæ¹ã¨å¿ç¨ã«ã¤ãã¦ã解説ãã¦ããã¾ãã
Â
Â
- C++ã®vector<>ã³ã³ããã«ã¤ãã¦
- C++ã®vector<>ã³ã³ããã®å®£è¨ã®ããæ¹
- C++ã®vector<>ã³ã³ããã®ã¤ãã¬ã¼ã¿ã®å®£è¨ã®ããæ¹
- C++ã®vector<>ã³ã³ããã®æä½ã«ã¤ãã¦
- C++ã®vector<>ã³ã³ããã®æä½ã®ä½¿ãæ¹ã¨ããã°ã©ã ä¾
- ï¼.ï¼.begin()/end()ãat()ã®ä½¿ãæ¹
- ï¼.ï¼.size()ã®ä½¿ãæ¹ï¼vector<>ã®è¦ç´ æ°ã調ã¹ãï¼
- ï¼.ï¼.empty()ã®ä½¿ãæ¹ï¼vector<>ã空ãã©ããå¤å®ããï¼
- ï¼.ï¼.push_back()/insert()ã®ä½¿ãæ¹ï¼vector<>ã®è¦ç´ ã追å ããï¼
- ï¼.ï¼.pop_back()/erase()ã®ä½¿ãæ¹ï¼vector<>ã®è¦ç´ ãåé¤ããï¼
- ï¼.ï¼.clear()ã®ä½¿ãæ¹ï¼vector<>ã®è¦ç´ ãå ¨åé¤ããï¼
- vector<>ã³ã³ããã®å¿ç¨ãã使ãæ¹
- æå¾ã«
Â
Â
Â
ï¼ï¼C++ã®vector<>ã³ã³ããã«ã¤ãã¦
Â
vector<>ã¯ãC++æ¨æºãã³ãã¬ã¼ãã©ã¤ãã©ãª(STL)ã«å«ã¾ããã³ã³ããã®ä¸ç¨®ã§ã
vector<>ã®æ±ãæ¹ã¯ããCè¨èªã®é åã¨åãã¤ã¡ã¼ã¸ã§ãã
é åã¨ç°ãªããã¨ã¯ãè¦ç´ ã®æ°ãåçã«å¤æ´ã§ããããã¡ã¢ãªç®¡çãèªåçã«è¡ããã¾ãã
Â
ãªã®ã§ãC++ã§ã¯ãCè¨èªã®é åãããvector<>ã使ç¨ããæ¹ããããªã便å©ã§ãã
ã¾ããCè¨èªã®ãã¤ã³ã¿ã¨åãèãæ¹ã§ãC++ã§ã¯ã¤ãã¬ã¼ã¿ãããã¾ãã
ã¤ãã¬ã¼ã¿ã使ç¨ãããã¨ã§ãvector<>ã®è¦ç´ ãç°¡åã«è¿½å ã»åé¤ãããã
å é è¦ç´ ãæå¾å°¾è¦ç´ ã«ãç°¡åã«ã¢ã¯ã»ã¹ãããã¨ãã§ãã¾ãã
Cè¨èªã®é åãããããªãæ±ããããã®ã§ãC++ã§ã¯ãé åãããvector<>ã使ç¨ããæ¹ãè¯ãã§ãã
Â
Â
ï¼ï¼C++ã®vector<>ã³ã³ããã®å®£è¨ã®ããæ¹
Â
vector<>ã使ç¨ããã«ã¯ã
ã»vector.h ãã¤ã³ã¯ã«ã¼ãããã
ã»namespace std; ã§ãã¼ã ã¹ãã¼ã¹ãè¨å®ããã
ãããå¿ è¦ãããã¾ãã
Â
ããã¦ãvector<>ã®å®£è¨ã®ããæ¹ã¯ãä¸è¨ã®ãããªæãã«ãªãã¾ãã
vector<å> å¤æ°å();
vector<å> å¤æ°å(è¦ç´ æ°);
Â
å ·ä½çã«ã¯ãä¸è¨ã®ããã«å®£è¨ãã¾ãã
vector<int> vCnt;
vector<int> vNum(10);
vector<char> vChar(10);
Â
Cè¨èªã®é åã§ã¯ãè¦ç´ æ°ãããããã宣è¨ãã¦ããå¿ è¦ãããã¾ããã
vector<>ã®å ´åã¯ãå¿ ãããè¦ç´ æ°ã決ããå¿ è¦ããªããããã°ã©ã ãé²ããã¨ã«ãã£ã¦ã
è¦ç´ ã追å ãã¦ãããã¨ãã§ãã¾ãã
ã¾ããvectorã®è¦ç´ æ°ãæåã«å®£è¨ããã¨ãã¦ããããã°ã©ã å ã§è¦ç´ 追å ãè¦ç´ åé¤ã®æä½ãè¡ãã¨ã
å¿ ããããã®å®£è¨ã§è¡ã£ãè¦ç´ æ°ã«ãªã£ã¦ããã¨ã¯éããªãã®ã§æ³¨æãå¿ è¦ã§ãã
Â
Â
ï¼ï¼C++ã®vector<>ã³ã³ããã®ã¤ãã¬ã¼ã¿ã®å®£è¨ã®ããæ¹
Â
vector<>ã使ç¨ããä¸ã§ãã¤ãã¬ã¼ã¿ã®èãæ¹ãå¿ è¦ã«ãªãã¾ãã
ã¤ãã¬ã¼ã¿ã¨ã¯ãvector<>ãªã©ã®ã³ã³ããã«ã¢ã¯ã»ã¹ããããã®ç®å°ã®ãããªãã®ã§ã
æ±ãæ¹ã®ã¤ã¡ã¼ã¸ã¨ãã¦ã¯ãCè¨èªã®ãã¤ã³ã¿æä½ã®ãããªæãã§ãã
ãã ãCè¨èªã®ãã¤ã³ã¿ã¯ãã¡ã¢ãªã®ã¢ãã¬ã¹ãæã示ããã®ã§ãã¡ã¢ãªæä½ãç´æ¥æ±ããã¨ãã§ãã¾ãã
ã¤ãã¬ã¼ã¿ã¯ãã¡ã¢ãªã¢ãã¬ã¹ãç´æ¥æ±ãã®ã§ã¯ãªããã³ã³ãããæä¾ããã¤ã³ã¿ã¼ãã§ã¼ã¹ãéãã¦ã
è¦ç´ ã«ã¢ã¯ã»ã¹ãã¾ãã
Â
ã¤ãã¬ã¼ã¿ã®å®£è¨ã®ããæ¹ã¯ãä¸è¨ã®ãããªæãã§ãã
vector<int>::iterator itr;
ããã¯ãintåã®vector<>ãã¢ã¯ã»ã¹ããããã®ã¤ãã¬ã¼ã¿itrå¤æ°ã宣è¨ãã¦ãã¾ãã
ä»ã«ãcharåãboolåãªã©ä½¿ç¨ãããåã§å®£è¨ãããã¨ãã§ãã¾ãã
Â
è£è¶³ã¨ãã¦ãC++11以éã§ã¯ã
auto itr = vNum.begin();
ã®ããã«ãauto ã使ç¨ããã¨ãå³è¾ºã®åã«åããã¦ã³ã³ãã¤ã©ãèªåçã«å¤æãã¦ããã¾ãã
Â
Â
ï¼ï¼C++ã®vector<>ã³ã³ããã®æä½ã«ã¤ãã¦
Â
ããã§ã¯ããã使ç¨ãããvector<>æä½ããä¸è¡¨ã«ã¾ã¨ãã¾ããã
é¢æ°å | 説æ |
---|---|
begin() | vectorã®å é è¦ç´ ãæãã¤ãã¬ã¼ã¿ãè¿ãã |
end() | vectorã®çµç«¯ã®æ¬¡ã®è¦ç´ ãæãã¤ãã¬ã¼ã¿ãè¿ãã end()ãæãè¦ç´ ã¯ãvectorã®è¦ç´ ã§ã¯ãªããï¼ |
at() | æååã®å é ããæå®ãããæåæ°åãå¥ã®é åã«ä¸æ¸ãã³ãã¼ããã |
size() | vectorã®è¦ç´ æ°ãè¿ãã¾ãã |
empty() |  vectorã空ãã©ãããå¤å®ãã¾ãã |
push.back() | æ«å°¾ã«è¦ç´ ã追å ãã¾ãã |
insert() | æå®ããä½ç½®ã«è¦ç´ ãæ¿å ¥ãã¾ãã |
pop.back() | æ«å°¾ã®è¦ç´ ãåé¤ãã¾ãã |
erase() | æå®ããã¤ãã¬ã¼ã¿ã¾ãã¯ç¯å²ã®è¦ç´ ãåé¤ãã¾ãã |
clear() | å ¨ã¦ã®è¦ç´ ãåé¤ãã¾ãã |
Â
æä½ããé¢æ°ã¯ãä¸è¡¨ã®ä»ã«ãããã¾ãããæä½éãã®è¡¨ã®æä½ãè¦ãã¦ããã¨ã
vector<>æä½ã«å°ããªãã¨æãã¾ãã
Â
Â
ï¼ï¼C++ã®vector<>ã³ã³ããã®æä½ã®ä½¿ãæ¹ã¨ããã°ã©ã ä¾
Â
ï¼.ï¼ begin()/end()ãat()ã®ä½¿ãæ¹
Â
begin() / end()ãat() ã®ã¤ã¡ã¼ã¸ã¯ãä¸å³ã®ãããªæãã§ãã
Â
begin() / end()ãat() ã®ä½¿ãæ¹ã¯ãä¸è¨ã®ãããªæãã§ãã
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector<int> vNum(10);
vector<int>::iterator itr = vNum.begin(); // ï¼ã¼ã¼ ï¼ï¼ï¼
int num;
for( num=0 ; itr != vNum.end(); num++, itr++ ){ // ï¼ã¼ã¼ï¼ï¼ï¼
*itr = num;
}
num = 0;
for( itr=vNum.begin(); itr != vNum.end(); itr++,num++ ){
printf("vector[%d] = %d\n", num, vNum.at(num) ); // ï¼ã¼ã¼ï¼ï¼ï¼
}
return 0;
}
Â
ä¸è¨ã¯ãvector<>ã®å é ããé ã«0ï½9ãæ ¼ç´ããå¾ãvector<>ã®å¤ã表示ããããã°ã©ã ã§ãã
ï¼ï¼ï¼ã§ãvector<int>åã®ã¤ãã¬ã¼ã¿ã§ããitrå¤æ°ã宣è¨ãã¦ã
åæå¤ã«vNumå¤æ°ã®å é è¦ç´ ãæãbegin()ãè¨å®ãã¦ãã¾ãã
Â
ï¼ï¼ï¼ã®foræã§ã¯ãã¤ãã¬ã¼ã¿ãã¤ã³ã¯ãªã¡ã³ãããªãããvNumå¤æ°ã®æå¾å°¾ã®è¦ç´ ãæãend()ã¾ã§ã
vNumå¤æ°ã«å¤ãå ¥ããå¦çãç¹°ãè¿ãã¾ãã
Â
ï¼ï¼ï¼ã§ãvector<>ã®å ¨ã¦ã®è¦ç´ å¤ãforæã§at()ã使ç¨ãã¦è¡¨ç¤ºãã¦ãã¾ãã
ï¼C++ã®æ¨æºåºåã¯ãcoutã使ç¨ãã¾ãããç§ã¯printf()ã好ããªã®ã§ã
ããã§ã¯ãprintf()ã使ç¨ãã¾ããï¼
Â
Â
ï¼.ï¼ vector<>ã®è¦ç´ æ°ã調ã¹ãsize()ã®ä½¿ãæ¹
Â
size()ã¯ãvector<>ã®è¦ç´ æ°ãæ»ãå¤ã¨ãã¦è¿ãã¾ãã
size()ã®ä½¿ãæ¹ã¯ãä¸è¨ã®ãããªæãã§ãã
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector<int> vA;
vector<int> vB = {0,1,2,3,4};
printf("vA size() = %lu \n", vA.size()); // (1)
printf("vB size() = %lu \n", vB.size()); // (2)
vA.push_back(10);
printf("vA size() = %lu \n", vA.size()); // (3)
return 0;
}
Â
ï¼ï¼ï¼ã§ã¯ãå¤æ°vA ã«è¦ç´ ãç¡ãã®ã§ããµã¤ãºã¯ï¼ã表示ãã¾ãã
ï¼ï¼ï¼ã§ã¯ãå¤æ°vB ã®è¦ç´ æ°ã§ããµã¤ãºã¯ï¼ã表示ãã¾ãã
ï¼ï¼ï¼ã§ã¯ãç´åã«å¤æ°vAã«push_back()ã§è¦ç´ ã追å ãã¾ããã®ã§ããµã¤ãºã¯ï¼ã表示ãã¾ãã
ï¼ï¼å ã®ï¼ï¼ã¯ãè¦ç´ ã®å¤ã«ãªãã¾ããpush_back()ã«ã¤ãã¦ã¯ãå¾ã§è§£èª¬ãã¾ãã
Â
Â
ï¼.ï¼ vector<>ã空ãã©ããå¤å®ããempty()ã®ä½¿ãæ¹
Â
empty()ã¯ãæ»ãå¤ãboolåã§ãvector<>ã®ãµã¤ãºãï¼ã®å ´åã¯ãç(true)ãè¿ãã
ãµã¤ãºãï¼ã§ãªãå ´åã¯å½(false)ãè¿ãã¾ãã
Â
empty()ã®ä½¿ãæ¹ã¯ãä¸è¨ã®ãããªæãã§ãã
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector<int> vA;
vector<int> vB = {0,1,2,3,4};
printf("vA empty() = %d \n", vA.empty()); // (1)
printf("vB empty() = %d \n", vB.empty()); // (2)
vA.push_back(10);
printf("vA empty() = %d \n", vA.empty()); // (3)
return 0;
}
Â
ï¼ï¼ï¼ã§ã¯ãå¤æ°vA ã«è¦ç´ ãç¡ãã®ã§ãç(true)ã表示ãã¾ãã
ï¼ï¼ï¼ã§ã¯ãå¤æ°vB ã¯è¦ç´ ãããã®ã§ãå½(false)ã表示ãã¾ãã
ï¼ï¼ï¼ã§ã¯ãç´åã«å¤æ°vAã«push_back()ã§è¦ç´ ã追å ãã¾ããã®ã§ãå½(false)ã表示ãã¾ãã
ï¼ï¼å ã®ï¼ï¼ã¯ãè¦ç´ ã®å¤ã«ãªãã¾ããpush_back()ã«ã¤ãã¦ã¯ãå¾ã§è§£èª¬ãã¾ãã
Â
Â
ï¼.ï¼ vector<>ã®è¦ç´ ã追å ããpush_back()/insert()ã®ä½¿ãæ¹
Â
push_back() ã¯ãå¼æ°ã§æå®ããå¤ãvector<>ã®æå¾å°¾ã«è¿½å ãã¾ãã
insert()ã¯ã第ä¸å¼æ°ã§æ¿å ¥ãããä½ç½®ã®ã¤ãã¬ã¼ã¿ãæå®ãã
第äºå¼æ°ã§ãå¤ãå¥vectorå¤æ°ã®ç¯å²ãæå®ãã¾ãã
Â
push_back() 㨠insert() ã®ä½¿ãæ¹ã¯ãä¸è¨ã®ãããªæãã§ãã
#include <iostream>
#include <vector>
using namespace std;
void printVector ( vector<int> vec )
{
int iCnt = 0;
vector<int>::iterator itr = vec.begin();
for( itr=vec.begin(); itr != vec.end(); itr++ ) {
printf("vector[%d] = %d\n", iCnt, vec.at(iCnt) );
iCnt++;
}
}
int main()
{
vector<int> vNum = {0,1,2,3};
int iCnt;
// push_back
printf("\n push_back(a) \n");
iCnt = 0;
vNum.push_back(10); // ï¼ã¼ã¼ï¼ï¼ï¼
printVector ( vNum );
// insert
printf("\n insert \n");
vNum.insert(vNum.begin()+3, 100); // ï¼ã¼ã¼ï¼ï¼ï¼
printVector ( vNum );
// insert 2
printf("\n insert 2 \n");
vector<int> vInsert = { 200, 210 };
vNum.insert(vNum.begin()+3, vInsert.begin(), vInsert.end() ); // ï¼ã¼ã¼ï¼ï¼ï¼
printVector ( vNum );
return 0;
}
Â
ï¼ï¼ï¼ã® push_back()ã§ãä¸å³ã®ããã«ãvector<>ã®æå¾å°¾ã«å¤ï¼ï¼ã追å ãã¾ãã
追å ã«ä¼´ããvector<>ã®ãµã¤ãºãï¼å¢å ãã¾ãã
Â
ï¼ï¼ï¼ã® insert()ã§ãä¸å³ã®ããã«vector<>ã®ï¼çªç®ã«å¤ï¼ï¼ï¼ã追å ãã¾ãã
追å ã«ä¼´ããvector<>ã®ãµã¤ãºãï¼å¢å ãã¾ãã
Â
ï¼ï¼ï¼ã®insert()ã§ãä¸å³ã®ããã«ç¬¬äºå¼æ°ã§æå®ãããvector<>ã®å¤å ¨ã¦ãã
第ä¸å¼æ°ã§æå®ãããä½ç½®ã«æ¿å ¥ãã¾ãã
追å ã«ä¼´ããvector<>ã®ãµã¤ãºãæ¿å ¥ããåãå¢å ãã¾ãã
Â
Â
ï¼.ï¼ vector<>ã®è¦ç´ ãåé¤ããpop_back()/erase()ã®ä½¿ãæ¹
Â
pop_back() ã¯ãå¼æ°ã§æå®ããå¤ãvector<>ã®æå¾ã®è¦ç´ ãåé¤ãã¾ãã
erase()ã¯ã第ä¸å¼æ°ã§æ¿å ¥ãããä½ç½®ã®ã¤ãã¬ã¼ã¿ã®è¦ç´ ãåé¤ãããã
第ä¸å¼æ°ãã第äºå¼æ°ã¾ã§ã®è¦ç´ ãåé¤ãã¾ãã
Â
Â
pop_back() 㨠erase() ã®ä½¿ãæ¹ã¯ãä¸è¨ã®ãããªæãã§ãã
#include <iostream>
#include <vector>
using namespace std;
void printVector ( vector<int> vec )
{
int iCnt = 0;
vector<int>::iterator itr = vec.begin();
for( itr=vec.begin(); itr != vec.end(); itr++ ){
printf("vector[%d] = %d\n", iCnt, vec.at(iCnt) );
iCnt++;
}
printf("vector.size = %lu\n", Â vec.size() );
}
int main()
{
  vector<int> vNum = { 0,1,2,3,4,5 };
  vector<int>::iterator itr = vNum.begin();
  int iCnt;
  // pop_back
  printf("\n pop_back \n");
  vNum.pop_back();   // ï¼ã¼ã¼ï¼ï¼ï¼
  printVector ( vNum );
  // erase
 printf("\n erase \n");
  vNum.erase( vNum.begin()+2 );  // ï¼ã¼ã¼ï¼ï¼ï¼
  printVector ( vNum );
  // erase 2
 printf("\n erase 2 \n");
  vNum.erase( vNum.begin(),vNum.begin()+2);  // ï¼ã¼ã¼ï¼ï¼ï¼
  printVector ( vNum );
 return 0;
}
Â
ï¼ï¼ï¼ã® pop_back()ã§ãä¸å³ã®ããã«ãvector<>ã®æå¾ã®è¦ç´ ãåé¤ãã¾ãã
åé¤ã«ä¼´ããvector<>ã®ãµã¤ãºãï¼æ¸å°ãã¾ãã
Â
ï¼ï¼ï¼ã® erase()ã§ãä¸å³ã®ããã«vector<>ã®ï¼çªç®ã®è¦ç´ ãåé¤ãã¾ãã
åé¤ã«ä¼´ããvector<>ã®ãµã¤ãºãï¼æ¸å°ãã¾ãã
Â
ï¼ï¼ï¼ã®erase()ã§ãä¸å³ã®ããã«ç¬¬ä¸å¼æ°ãã第äºå¼æ°ã§æå®ãããã¤ãã¬ã¼ã¿ã¾ã§ã®è¦ç´ ãåé¤ãã¾ãã
åé¤ã«ä¼´ããåé¤ããè¦ç´ åã®ãµã¤ãºãæ¸å°ãã¾ãã
Â
Â
ï¼.ï¼ vector<>ã®è¦ç´ ãå ¨åé¤ããclear()ã®ä½¿ãæ¹
Â
clear()ã¯ãvector<>ã®è¦ç´ æ°ãå ¨ã¦åé¤ãã¾ãã
clear()ã®ä½¿ãæ¹ã¯ãä¸è¨ã®ãããªæãã§ãã
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector<int> vNum = {0,1,2,3,4};
// (1) clearåã®ãµã¤ãºã表示
printf("before size %lu \n", vNum.size());
printf("before empty %d \n", vNum.empty());
vNum.clear();
// (2) clearå¾ã®ãµã¤ãºã表示
printf("after size %lu \n", vNum.size());
printf("after empty %d \n", vNum.empty());
return 0;
}
Â
ï¼ï¼ï¼ã§ã¯ãclear()åã®vector<>å¤æ°ã®vNumã®ãµã¤ãºã¨ç©ºç¶æ ã表示ãã¦ãã¾ãã
ãã®æã¯ããµã¤ãºã¯ï¼ã§ã空ã§ã¯ãªãã®ã§falseã®ï¼ã表示ãã¾ãã
Â
ï¼ï¼ï¼ã§ã¯ãclear()å¾ã®vector<>å¤æ°ã®vNumã®ãµã¤ãºã¨ç©ºç¶æ ã表示ãã¦ãã¾ãã
ãã®æã¯ããµã¤ãºã¯ï¼ã§ã空ãªã®ã§trueã®ï¼ã表示ãã¾ãã
Â
Â
ï¼ï¼vector<>ã³ã³ããã®å¿ç¨ãã使ãæ¹
Â
vector<>ã®å¿ç¨ãã使ãæ¹ã¨ãã¦ã¯ã
vector<vector<int>> vVecIntNum[5][5];
vector<Myclass> vMyClass;
ã®ããã«ãvectorã®åã«ã¯ãvector<>èªä½ãã¯ã©ã¹ãè¨å®ãããã¨ãã§ãã¾ãã
vVecInt[5][5]ã¯ãCè¨èªã§ããã¨a[ï¼][ï¼]ã®ãããªï¼æ¬¡å é åã«ãªãã¾ãã
Â
Â
ï¼.ï¼ vector<>ã³ã³ããã®ï¼æ¬¡å é åã®ä½¿ãæ¹
Â
vector<>ã®ï¼æ¬¡å é åã®ä½¿ãæ¹ã¯ãä¸è¨ã®ãããªæãã«ãªãã¾ãã
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector<vector<int>> vNum = { {1,2,3}, {4,5,6}, {7,8,9} };
vector<vector<int>>::iterator itr;
vector<int>::iterator itr2;
int iCnt,iCnt2;
for( iCnt=0,itr=vNum.begin(); itr < vNum.end(); iCnt++, itr++ )
{
for( iCnt2=0, itr2=vNum[iCnt].begin(); itr2 < vNum[iCnt].end(); iCnt2++, itr2++ )
{
printf("vNum[%d][%d] = %d\n",iCnt, iCnt2, *itr2 );
}
}
return 0;
}
Â
Â
ï¼.ï¼ vector<>ã³ã³ããã®ã¯ã©ã¹åã®ä½¿ãæ¹
Â
MyClassã¯ã©ã¹ãæ°åãå¹´é½¢ãä½æã管çããã¯ã©ã¹ã¨ããå ´åã
MyClassã¯ã©ã¹ãvector<>ã§ç®¡çãããã¨ã§ãåç°¿ã¨ãã¦ç®¡çãããã¨ãã§ãã¾ãã
vector<>ã®ã¯ã©ã¹åã®ä½¿ãæ¹ã¯ãä¸è¨ã®ãããªæãã«ãªãã¾ãã
#include <iostream>
#include <vector>
using namespace std;
class MyClass {
public:
MyClass(){};
~MyClass(){};
void setName( string a ){ name=a; }
void setAge( int a ){ age=a; }
void setAddress( string a ){ address=a; }
string getName(){ return name; }
int getAge(){ return age; }
string getAddress( ){ return address; }
private:
string name;
int age;
string address;
};
int main()
{
string strName[] = {"name1", "name2", "name3","name4"};
int iAge[] = { 23, 43, 34, 17 };
string strAddress[] = {"tokyou", "osaka", "nara", "kanagawa"};
vector<MyClass*> vMyClass(4);
vector<MyClass*>::iterator itr;
MyClass *cMyClass;
int iCnt;
// (ï¼) MyClassã¯ã©ã¹ã®ã¡ã¢ãªã確ä¿ãã¦ãã¼ã¿ãæ ¼ç´ããvector<>ã«æ ¼ç´ããã
for( iCnt=0, itr=vMyClass.begin(); itr < vMyClass.end(); iCnt++, itr++ )
{
cMyClass = new MyClass();
cMyClass->setName( strName[iCnt] );
cMyClass->setAge( iAge[iCnt] );
cMyClass->setAddress( strAddress[iCnt] );
*itr = cMyClass;
}
//ï¼ï¼ï¼MyClassã¯ã©ã¹ã®ã¡ã³ãå¤æ°ã®å¤ã表示ããã
for( iCnt=0, itr=vMyClass.begin(); itr < vMyClass.end(); iCnt++, itr++ )
{
printf("\nNo. %d\n", iCnt );
printf("name = %s\n", (*itr)->getName().c_str() );
printf("age = %d\n", (*itr)->getAge());
printf("address = %s\n", (*itr)->getAddress().c_str() );
}
//ï¼ï¼ï¼MyClassã¯ã©ã¹ã®ã¡ã¢ãªãéæ¾ããã
for( itr=vMyClass.begin(); itr < vMyClass.end(); itr++ )
{
delete *itr;
}
return 0;
}
Â
ï¼ï¼ï¼ã¯ãMyClassã®ã¡ã¢ãªã確ä¿ãã¦ãã¡ã³ãå¤æ°nameãageãaddressã«å¤ãæ ¼ç´ãã¦ããã¾ãã
ãã®å¾ãMyClassã®ã¤ã³ã¹ã¿ã³ã¹ãvector<>ã®è¦ç´ ã¨ãã¦æ ¼ç´ãã¦ãè¦ç´ æ°åç¹°ãè¿ãã¾ãã
Â
ï¼ï¼ï¼ã¯ãvector<>ã«æ ¼ç´ããã¦ããMyClassã®ã¡ã³ãå¤æ°ã®å¤ãï¼ã¤ãã¤è¡¨ç¤ºãã¦ãã¾ãã
Â
ï¼ï¼ï¼ã¯ãï¼ï¼ï¼ã§ç¢ºä¿ããã¡ã¢ãªã解æ¾ãã¦ãã¾ãã確ä¿ããã¡ã¢ãªã解æ¾ããªãã¨ã
ã¡ã¢ãªãªã¼ã¯ã®åå ã«ãªãã¾ãã®ã§ãnewããå ´åã¯å¿ ãdeleteãã»ããã§è¡ãã¾ãã
Â
Â
ï¼ï¼æå¾ã«
Â
C++ã®ããã°ã©ãã³ã°ã§ãé åãèããæã¯ãã¾ãã¯vector<>ã使ç¨ããã¨è¯ãã§ãã
é åæä½ããç°¡åã§ã³ã¼ãéèªä½ãå°ãªããªããèªã¿ããããªãã¾ãã
Â
Â
ï¼é¢é£ã»ããããè¨äºï¼
C++ã®ã¯ã©ã¹æ§é ã®è§£èª¬ã¨ããã°ã©ãã³ã°ã®å§ãæ¹ - æ°´ç¶åº§åè»
ããPCã¨ã©ãºãã¤ã®æ¯è¼è§£èª¬ã¨ããPCããããã©ã³ãã³ã° - æ°´ç¶åº§åè»
Linuxåå¼·ç¨ã®ä¸å¤ãã½ã³ã³ããããã·ã§ããã©ã³ãã³ã° - æ°´ç¶åº§åè»
Cè¨èªã®å§ãæ¹ã¨åºæ¬æ§é ãã³ã³ãã¤ã«ããå®è¡ã¾ã§ã解説 - æ°´ç¶åº§åè»
Cè¨èªã®ãã¼ã¿åã¨å¤æ°ãé¢æ°ã«ã¤ãã¦è§£èª¬ - æ°´ç¶åº§åè»
Cè¨èªã®ç¹°ãè¿ãæ§æ( while, do while, for )ã®è§£èª¬ã¨å¿ç¨ - æ°´ç¶åº§åè»
Cè¨èªã®æ¼ç®åã¨åªå é ä½ã®è§£èª¬ - æ°´ç¶åº§åè»
Cè¨èªã®æ§é ä½ã«ã¤ãã¦è§£èª¬ - æ°´ç¶åº§åè»
Â
Â
Â
Â