第12講 ベクタの学習
第12話 関数でベクタを定義しベクタをmainに返す
ベクタを返すコード例
#include<vector> //ベクタを使うのに必要なvectorをインクルード
#include <stdio.h> //printfを使うのに必要なstduio.hをインクルード
using namespace std; //ベクタを使うために必要
vector<int>::iterator f();
void main(){
   vector<int>::iterator b;
   b=f();
   printf("main上での表示 ");
   for(char i=0;i<3;i++)printf("a[%d]=%d ",i,b[i]); //main上でデータを表示
}

vector<int>::iterator f(){
   static vector<int> a(3);
   for(char i=0;i<3;i++)a[i]=i+5; //関数f()においてデータを作成
   return(a.begin());
}
実行結果
main上での表示 a[0]=5 a[1]=6 a[2]=7

わかりやすさを優先して、
mainのイテレータ(反復子)名をbと関数fで定義されるベクタ名と
変えていますが、
#include<vector> //ベクタを使うのに必要なvectorをインクルード
#include <stdio.h> //printfを使うのに必要なstduio.hをインクルード
using namespace std; //ベクタを使うために必要
vector<int>::iterator f();
void main(){
   vector<int>::iterator
a;
   a=f();
   printf("main上での表示 ");
   for(char i=0;i<3;i++)printf("a[%d]=%d ",i,a[i]); //main上でデータを表示
}

vector<int>::iterator f(){
   static vector<int> a(3);
   for(char i=0;i<3;i++)a[i]=i+5; //関数f()においてデータを作成
   return(a.begin());
}
参考ダウンロードファイル
でも全く問題なく動くことは、
ここまでの学習についてこられた聡明な皆さんなら、
お分かりですよね。

今回は1次元ベクタをmainに返しましたが、
2次元ベクタも返せます。
2次元ベクタは、
次のように定義します。
   vector< vector<int> > a(5);
   for(int i=0;i<6;i++)a[i].resize(6);
この例は、5行6列の2次元ベクタです。
また、2次元ベクタに対応するイテレータ(反復子)は、
次のように宣言します。
   vector<vector<int>>::iterator a;
関数f()で2次元ベクタを定義して、
下記の実行結果のデータも与えmainに戻し、
main上でそれを表示させて下さい。
実行結果
main上での表示
01 02 03 04 05 06
07 08 09 10 11 12
13 14 15 16 17 18
19 20 21 22 23 24
25 26 27 28 29 30



第11話へ 第13話へ



a

eclipse c++ 入門講義第1部へ

魔方陣 数独で学ぶ V
BA 入門
数独のシンプルな解き方・簡単な解法の研究
VB講義へ
VB講義基礎へ
初心者のための世界で一番わかりやすいVisual C++入門基礎講座
初心者のための世界で一番わかりやすいVisual Basic入門基礎講座
初心者のための世界で一番わかりやすいVBA入門講義(基礎から応用まで)
初心者のための VC++による C言語 C++ 入門 基礎から応用まで第1部
eclipse java 入門
java 入門 サイト 基礎から応用まで
VC++ C言語 C++ 入門 初心者 基礎から応用まで
本サイトトップへ