イテレーション


イテレーションとは?


:反復器は、コンテナ内の要素を巡回できるポインタなどのオブジェクトです.
begin()関数とend()関数を使用して、コンテナ内の要素を巡回できます.
重複するアイテムを取得するための関数です.

  • begin()関数
    :名前の通り、容器の最初の要素を指します.

  • end()関数
    :最後の要素の後ろを指します.
  • 面接問題??
    :end()は最後の要素ではなく、最後の要素の後のセルの要素を指す理由
    君のことを言っているのではないか.
    =>(回答)空の容器を表します.
    (説明)end()が最後の要素を指す場合、begin()とend()は同じ場所を指す.
    また、要素を追加すると、begin()とend()も同じ場所を指します.
    これは空ベクトルを表現できないためだと思います.
    end()を最後の要素の後ろに配置することによって、1つの要素が存在しない場合、begin()=end()は空で表されます.1つの要素が入ると、beginは1つの要素を指し、endは1つの要素の後ろを指し、空の要素と1つの要素に入ることを区別できます.
  • 検索
  • iteratorアドレス
    :驚くべきことにv.begin()のアドレスとサイズですが、いずれにしてもiterator値はポインタです.
    すなわち,指し示す箇所の番号を+1(すなわちサイズ+4)増やしながらコンテナ要素を巡回する.
    ->それを通して...難しそうです.
  • #include <string>
    #include <iostream>
    #include <vector>
    using namespace std;
    
    int main() {	
    	
    	vector<int> v;
    	v.push_back(1);
    	v.push_back(2);
    	v.push_back(3);
    	v.push_back(4);
    	v.push_back(5);
    	v.push_back(6);
    
    	cout << "vector 의 주소값 : " << &v << endl;
    	cout << "vector[0] 의 주소값 : " << &v[0] << endl << endl;
    	cout << "vector[1] 의 주소값 : " << &v[1] << endl << endl;
    	cout << "vector[2] 의 주소값 : " << &v[2] << endl << endl;
    	
    	cout << "vector.begin()의 크기 :" << sizeof(v.begin()) << endl;
    	cout << "vector.begin()의 주소값 :" << &(v.begin()) << endl;
    
    	cout << "vector.begin() + 1의 주소값 :" << &(v.begin() + 1) << endl;
    	
    	cout << "vector.end()의 주소값 : " << &(v.end()) << endl;
    	cout << endl;
    	vector<int>::iterator i;
    	i = v.begin();
    
    	cout << "이터레이터 i의 주소값 : " << &i << ", value : " <<  *i 
    		<< ", 이터레이터가 가리키는 곳의 주소값은 : " << &(*i) << endl;
    	i++;
    	cout << "이터레이터 + 1 증가시킴" << endl;
    	cout << "이터레이터 i의 주소값 : " << &i << ", value : " << *i 
    		<< ", 이터레이터가 가리키는 곳의 주소값은 : " << &(*i) << endl;
    
    	system("pause");
    
    	return 0;
    }
  • 実施
  • イテレーションタイプ
  • auto演算子、例えば
  • ウィジェットとは?
  • 小バージョンの特性と使い方など...