Aracılığıyla paylaş


move_iterator Sınıfı

Sınıf şablonu move_iterator , yineleyici için sarmalayıcıdır. move_iterator, depolanmış yineleyicinin başvuru kaldırma işlecini rvalue başvurusuna dönüştürerek kopyayı taşımaya dönüştürmesi dışında, sarmalandığı (depolandığı) yineleyiciyle aynı davranışı sağlar. rvalues hakkında daha fazla bilgi için bkz . Rvalue Başvurusu Bildirimcisi: &.

Sözdizimi

class move_iterator;

Açıklamalar

Sınıf şablonu, başvurulmadığı durumlar dışında yineleyici gibi davranan bir nesneyi açıklar. üye işlevi base()yoluyla erişilen türünde Iteratorrastgele erişim yineleyicisini depolar. üzerindeki move_iterator tüm işlemler doğrudan depolanan yineleyici üzerinde gerçekleştirilir, ancak sonucu operator* örtük olarak bir rvalue başvurusu yapmak için öğesine value_type&& yayınlanır.

, move_iterator sarmalanan yineleyici tarafından tanımlanmayan işlemleri yapabilir. Bu işlemler kullanılmamalıdır.

Oluşturucular

Oluşturucu Açıklama
move_iterator türündeki move_iteratornesneler için oluşturucu.

Tür tanımları

Tür adı Açıklama
iterator_type şablon parametresinin RandomIteratoreş anlamlısı.
iterator_category Aynı ada sahip daha uzun typename bir ifadenin eş anlamlısı, iterator_category yineleyicinin genel yeteneklerini tanımlar.
value_type Aynı ada sahip daha uzun typename bir ifadenin eş anlamlısı, value_type yineleyici öğelerinin ne tür olduğunu açıklar.
difference_type Aynı ada sahip daha uzun typename bir ifadenin eş anlamlısı, difference_type öğeler arasındaki fark değerlerini ifade etmek için gereken integral türünü açıklar.
Işaretçi Şablon parametresinin RandomIteratoreş anlamlısı.
referans başvurusunun value_type&&eş anlamlısırvalue.

Üye işlevleri

Üye işlevi Açıklama
temel Üye işlevi, tarafından move_iteratorsarmalanmış depolanan yineleyiciyi döndürür.

İşleçler

Operator Açıklama
move_iterator::operator* (reference)*base() döndürür.
move_iterator::operator++ Depolanmış yineleyiciyi artırır. Tam davranış, bunun bir öncrement veya postincrement işlemi olmasına bağlıdır.
move_iterator::operator-- Depolanan yineleyiciyi azaltır. Tam davranış, bunun bir ön ödeme mi yoksa bir geri ödeme işlemi mi olduğuna bağlıdır.
move_iterator::operator-> &**this döndürür.
move_iterator::operator- İlk olarak sağ taraftaki değeri geçerli konumdan çıkararak döndürür move_iterator(*this) -= .
move_iterator::operator[] (reference)*(*this + off) döndürür. Bu konumdaki değeri elde etmek için geçerli temel bir uzaklık belirtmenizi sağlar.
move_iterator::operator+ Değeri verir move_iterator(*this) += . Bu konumdaki değeri elde etmek için geçerli temele bir uzaklık eklemenizi sağlar.
move_iterator::operator+= Depolanan yineleyiciye sağ taraftaki değeri ekler ve döndürür *this.
move_iterator::operator-= Depolanan yineleyiciden sağ taraftaki değeri çıkarır ve döndürür *this.

Gereksinimler

Üst bilgi:<yineleyici>

Ad alanı: std

move_iterator::base

Bu move_iteratoriçin depolanan yineleyiciyi döndürür.

RandomIterator base() const;

Açıklamalar

Üye işlevi depolanan yineleyiciyi döndürür.

move_iterator::d ifference_type

Türüdifference_type, yineleyici özelliğine difference_typedayalıdır move_iterator typedef ve onunla birbirinin yerine kullanılabilir.

typedef typename iterator_traits<RandomIterator>::difference_type difference_type;

Açıklamalar

Türü, yineleyici özelliği typename iterator_traits<RandomIterator>::pointeriçin bir eş anlamlıdır.

move_iterator::iterator_category

Türüiterator_category, yineleyici özelliğine iterator_categorydayalıdır move_iterator typedef ve onunla birbirinin yerine kullanılabilir.

typedef typename iterator_traits<RandomIterator>::iterator_category  iterator_category;

Açıklamalar

Türü, yineleyici özelliği typename iterator_traits<RandomIterator>::iterator_categoryiçin bir eş anlamlıdır.

move_iterator::iterator_type

Türüiterator_type, sınıf şablonunun move_iteratorşablon parametresini RandomIterator temel alır ve yerine birbirinin yerine kullanılabilir.

typedef RandomIterator iterator_type;

Açıklamalar

türü, şablon parametresi RandomIteratoriçin bir eş anlamlıdır.

move_iterator::move_iterator

Taşıma yineleyicisi oluşturur. parametresini depolanan yineleyici olarak kullanır.

move_iterator();
explicit move_iterator(RandomIterator right);
template <class Type>
move_iterator(const move_iterator<Type>& right);

Parametreler

Sağ
Depolanan yineleyici olarak kullanılacak yineleyici.

Açıklamalar

İlk oluşturucu, depolanan yineleyiciyi varsayılan oluşturucusuyla başlatır. Kalan oluşturucular depolanan yineleyiciyi ile base.base()başlatır.

move_iterator::operator+=

Depolanan yineleyiciye bir uzaklık ekler, böylece depolanan yineleyici yeni geçerli konumdaki öğeye işaret eder. İşleç daha sonra yeni geçerli öğeyi taşır.

move_iterator& operator+=(difference_type _Off);

Parametreler

_Kapalı
Yeni geçerli konumu belirlemek için geçerli konuma eklenecek uzaklık.

Dönüş Değeri

Yeni geçerli öğeyi döndürür.

Açıklamalar

işleci depolanan yineleyiciye _Off ekler. Ardından döndürür *this.

move_iterator::operator-=

Belirtilen sayıda önceki öğeyi taşır. Bu işleç, depolanan yineleyiciden bir uzaklığı çıkarır.

move_iterator& operator-=(difference_type _Off);

Parametreler

Açıklamalar

işleci değerini değerlendirir *this += -_Off. Ardından döndürür *this.

move_iterator::operator++

Bu move_iteratoröğesine ait depolanan yineleyiciyi artırır. Geçerli öğeye postincrement işleci tarafından erişilir. Sonraki öğeye preincrement işleci tarafından erişilir.

move_iterator& operator++();
move_iterator operator++(int);

Parametreler

Açıklamalar

İlk (preincrement) işleci depolanan yineleyiciyi artırır. Ardından döndürür *this.

İkinci (postincrement) işleci öğesinin *thisbir kopyasını oluşturur ve değerini değerlendirir ++*this. Ardından kopyayı döndürür.

move_iterator::operator+

Herhangi bir sayıda öğe tarafından gelişmiş yineleyici konumunu döndürür.

move_iterator operator+(difference_type _Off) const;

Parametreler

Açıklamalar

işleci döndürür move_iterator(*this) += _Off.

move_iterator::operator[]

dizi dizininin aralığındaki öğelere erişmesine move iteratorizin verir.

reference operator[](difference_type _Off) const;

Parametreler

Açıklamalar

işleci döndürür (reference)*(*this + _Off).

move_iterator::operator--

Ön ve soncrement üye işleçleri, depolanan yineleyicide bir azaltma gerçekleştirir.

move_iterator& operator--();
move_iterator operator--();

Parametreler

Açıklamalar

İlk üye işleci (öndecrement) depolanan yineleyiciyi azalan. Ardından döndürür *this.

İkinci (postdecrement) işleci öğesinin *thisbir kopyasını alır ve değerini değerlendirir --*this. Ardından kopyayı döndürür.

move_iterator::operator-

Depolanan yineleyiciyi azaltma ve belirtilen değeri döndürme.

move_iterator operator-(difference_type _Off) const;

Parametreler

Açıklamalar

işleci döndürür move_iterator(*this) -= _Off.

move_iterator::operator*

Depolanan yineleyicinin başvurularını geri alır ve değeri döndürür. Bu bir gibi rvalue reference davranır ve taşıma ataması gerçekleştirir. işleci geçerli öğeyi temel yineleyicinin dışına aktarır. Aşağıdaki öğe yeni geçerli öğe olur.

reference operator*() const;

Açıklamalar

işleci döndürür (reference)*base().

move_iterator::operator->

Normal RandomIterator operator->gibi, geçerli öğeye ait alanlara erişim sağlar.

pointer operator->() const;

Açıklamalar

işleci döndürür &**this.

move_iterator::p ointer

türüpointer, için move_iteratorrastgele yineleyiciyi RandomIterator temel alan bir typedef türdür ve birbirinin yerine kullanılabilir.

typedef RandomIterator  pointer;

Açıklamalar

türü, için RandomIteratorbir eş anlamlıdır.

move_iterator::reference

türü reference için move_iteratortabanlıdır typedef value_type&& ve ile value_type&&birbirinin yerine kullanılabilir.

typedef value_type&& reference;

Açıklamalar

Türü, bir rvalue başvurusu olan için value_type&&bir eş anlamlıdır.

move_iterator::value_type

Türüvalue_type, yineleyici özelliğine value_typedayalıdır move_iterator typedef ve onunla birbirinin yerine kullanılabilir.

typedef typename iterator_traits<RandomIterator>::value_type   value_type;

Açıklamalar

Türü, yineleyici özelliği typename iterator_traits<RandomIterator>::value_typeiçin bir eş anlamlıdır.

Ayrıca bkz.

<Yineleyici>
Lvalue ve Rvalue’lar
Taşıma Oluşturucuları ve Taşıma Atama İşleçleri (C++)
C++ Standart Kitaplığı Başvurusu