同じクラステンプレート型のイテレータには同じクラステンプレート型のイテレータを代入することができますできます

ソーラー「


では再び


vector型のクラステンプレート


を用いて


数値データをメモリに格納する


プログラムを実行してみたいと思います」


そのプログラムはこちらです

👇



#include <iostream>


#include <vector>//🌞ヘッダファイル<vector>をインクルードするのを忘れずに!


using namespace std;


int main() {


vector<int> a = { 1,2,3 };


vector<int>::iterator itr1 = a.begin();



cout << *itr1 << "\n";

cout << &*itr1 << "\n";



vector<int> b = { 4,5,6 };


vector<int>::iterator itr2 = b.begin();


cout << *itr2 << "\n";

cout << &*itr2 << "\n";



return 0;

}


プログラムの実行結果


1

00D3FF28

4

00D3FF80


ソーラー「


vector型のクラステンプレート


を用いて


オブジェクトaを生成し


数値データ1,2,3をメモリに格納しました


数値データ1を格納したメモリのアドレスは


00D3FF28

です🌞


もう1つ


vector型のクラステンプレート


を用いて


オブジェクトbを生成し


数値データ4,5,6をメモリに格納しました


数値データ1を格納したメモリのアドレスは


00D3FF80


ですね🌞」


マックス「もしかして


vector<int> a = { 1,2,3 };


vector<int>::iterator itr1 = a.begin();


を実行すると


イテレータitr1には


数値データ1を格納しているメモリのアドレスが代入されるのなら


vector<int> b = { 4,5,6 };


vector<int>::iterator itr2= itr1;

         👆ここに注目

を実行し


itr2をitr1で初期化したら


itr2に


数値データ1を格納しているメモリのアドレスを代入できるんじゃないか?」


ソーラー「それもそうですね


それでは


早速そのプログラムを実行してみたいと思います


そのプログラムはこ・ち・ら💖

👇


#include <iostream>


#include <vector>//🌞ヘッダファイル<vector>をインクルードするのを忘れずに!


using namespace std;


int main() {


vector<int> a = { 1,2,3 };


vector<int>::iterator itr1 = a.begin();



cout << *itr1 << "\n";

cout << &*itr1 << "\n";



vector<int> b = { 4,5,6 };


vector<int>::iterator itr2 = itr1;



cout << *itr2 << "\n";

cout << &*itr2 << "\n";



return 0;

}


プログラムの実行結果


1

00843330

1

00843330



ソーラー「ははあ


成程


vector<int>型のイテレータitr1で


vector<int>型のイテレータitr2


を初期化することができたね


じゃあ


同じクラステンプレートの型で用いられているイテレータに


イテレータを


代入することもできるんじゃないかな?」


そのプログラムはこちらです

👇



#include <iostream>


#include <vector>//🌞ヘッダファイル<vector>をインクルードするのを忘れずに!


using namespace std;


int main() {


vector<int> a = { 1,2,3 };


vector<int>::iterator itr1 = a.begin();



cout << *itr1 << "\n";

cout << &*itr1 << "\n";



vector<int> b = { 4,5,6 };


vector<int>::iterator itr2;


itr2=itr1;//👈ここです


cout << *itr2 << "\n";

cout << &*itr2 << "\n";



return 0;

}


プログラムの実行結果


1

010EFB00

1

010EFB00


ソーラー「やはり


itr2=itr1;


も実行できたね😊」

  • Twitterで共有
  • Facebookで共有
  • はてなブックマークでブックマーク

作者を応援しよう!

ハートをクリックで、簡単に応援の気持ちを伝えられます。(ログインが必要です)

応援したユーザー

応援すると応援コメントも書けます

新規登録で充実の読書を

マイページ
読書の状況から作品を自動で分類して簡単に管理できる
小説の未読話数がひと目でわかり前回の続きから読める
フォローしたユーザーの活動を追える
通知
小説の更新や作者の新作の情報を受け取れる
閲覧履歴
以前読んだ小説が一覧で見つけやすい
新規ユーザー登録無料

アカウントをお持ちの方はログイン

カクヨムで可能な読書体験をくわしく知る