checked_array_iterator-Klasse

Die checked_array_iterator-Klasse ermöglicht es Ihnen, ein Array oder einen Zeiger in einen überprüfter Iterator zu transformieren. Verwenden Sie diese Klasse (mithilfe der make_checked_array_iterator-Funktion) als Wrapper für unformatierte Zeiger oder Arrays. So erhalten Sie eine zielgerichtete Methode für Überprüfungen und zum Verwalten von Warnungen für ungeprüfte Zeiger, anstatt diese Warnungen global zu deaktivieren. Bei Bedarf können Sie die ungeprüfte Version dieser Klasse, unchecked_array_iterator, verwenden.

Hinweis

Bei dieser Klasse handelt es sich um eine Microsoft-Erweiterung der C++-Standardbibliothek. Der Code, der mit dieser Funktion implementiert wird, ist nicht auf C++-Standardbuildumgebungen übertragbar, die die Microsoft-Erweiterung nicht unterstützen. Ein Beispiel, in dem das Schreiben von Code veranschaulicht wird, bei dem die Verwendung dieser Klasse nicht erforderlich ist, finden Sie im zweiten Beispiel weiter unten.

Syntax

template <class _Iterator>
class checked_array_iterator;

Hinweise

Diese Klasse wird im stdext-Namespace definiert.

Weitere Informationen und Beispielcode zu überprüften Iteratoren finden Sie unter Überprüfte Iteratoren.

Beispiele

Im folgenden Beispiel wird das Definieren und Verwenden eines überprüften Arrayiterators veranschaulicht.

Wenn die Größe des Ziel nicht ausreicht, um alle kopierten Elemente zu halten, wie es bei Änderung der folgenden Zeile der Fall wäre:

copy(a, a + 5, checked_array_iterator<int*>(b, 5));

Bis

copy(a, a + 5, checked_array_iterator<int*>(b, 4));

Ein Laufzeitfehler tritt auf.

// compile with: /EHsc /W4 /MTd
#include <algorithm>
#include <iostream>

using namespace std;
using namespace stdext;

int main() {
   int a[]={0, 1, 2, 3, 4};
   int b[5];
   copy(a, a + 5, checked_array_iterator<int*>(b, 5));

   cout << "(";
   for (int i = 0 ; i < 5 ; i++)
      cout << " " << b[i];
   cout << " )" << endl;

   // constructor example
   checked_array_iterator<int*> checked_out_iter(b, 5);
   copy(a, a + 5, checked_out_iter);

   cout << "(";
   for (int i = 0 ; i < 5 ; i++)
      cout << " " << b[i];
   cout << " )" << endl;
}
/* Output:
( 0 1 2 3 4 )
( 0 1 2 3 4 )
*/

Um bei der Verwendung von C++-Standardbibliotheksalgorithmen keine checked_array_iterator-Klasse zu benötigen, könnten Sie anstelle eines dynamisch zugeordneten Arrays vector verwenden. Im folgenden Beispiel wird die dafür erforderliche Vorgehensweise veranschaulicht.

// compile with: /EHsc /W4 /MTd

#include <algorithm>
#include <iostream>
#include <vector>

using namespace std;

int main()
{
    std::vector<int> v(10);
    int *arr = new int[10];
    for (int i = 0; i < 10; ++i)
    {
        v[i] = i;
        arr[i] = i;
    }

    // std::copy(v.begin(), v.end(), arr); will result in
    // warning C4996. To avoid this warning while using int *,
    // use the Microsoft extension checked_array_iterator.
    std::copy(v.begin(), v.end(),
              stdext::checked_array_iterator<int *>(arr, 10));

    // Instead of using stdext::checked_array_iterator and int *,
    // consider using std::vector to encapsulate the array. This will
    // result in no warnings, and the code will be portable.
    std::vector<int> arr2(10);    // Similar to int *arr = new int[10];
    std::copy(v.begin(), v.end(), arr2.begin());

    for (int j = 0; j < arr2.size(); ++j)
    {
        cout << " " << arr2[j];
    }
    cout << endl;

    return 0;
}
/* Output:
0 1 2 3 4 5 6 7 8 9
*/

Konstruktoren

Konstruktor Beschreibung
checked_array_iterator Erstellt aus einem zugrunde liegenden Iterator einen standardmäßigen checked_array_iterator oder checked_array_iterator.

TypeDefs

Typname Beschreibung
difference_type Ein Typ, mit dem der Unterschied zwischen zwei checked_array_iteratoren bereitgestellt wird, die auf Elemente innerhalb desselben Containers verweisen.
pointer Ein Typ, mit dem ein Zeiger auf ein Element bereitgestellt wird, die von checked_array_iterator adressiert werden.
reference Ein Typ, mit dem ein Verweis auf ein Element bereitgestellt wird, die von checked_array_iterator adressiert werden.

Memberfunktionen

Memberfunktion Beschreibung
base Stellt den zugrunde liegenden Iterator aus checked_array_iterator wieder her.

Operatoren

Operator Beschreibung
operator== Prüft zwei checked_array_iteratoren auf Gleichheit.
operator!= Prüft zwei checked_array_iteratoren auf Ungleichheit.
operator< Testet, ob checked_array_iterator links vom Operator kleiner als checked_array_iterator auf der rechten Seite ist.
operator> Testet, ob checked_array_iterator links vom Operator größer als checked_array_iterator auf der rechten Seite ist.
operator<= Testet, ob checked_array_iterator links vom Operator kleiner oder gleich checked_array_iterator auf der rechten Seite ist.
operator>= Testet, ob checked_array_iterator links vom Operator größer oder gleich checked_array_iterator auf der rechten Seite ist.
operator* Gibt das Element zurück, das ein checked_array_iterator adressiert.
operator-> Gibt einen Zeiger auf das Element zurück, das von checked_array_iterator adressiert wird.
operator++ Erhöht checked_array_iterator zum nächsten Element.
Operator-- Verringert checked_array_iterator zum vorherigen Element.
operator+= Fügt checked_array_iterator einem angegebenen Offset hinzu.
operator+ Fügt einen Offset zu einem Iterator hinzu und gibt den neuen checked_array_iterator zurück, der auf das eingefügte Element an der neuen Offsetposition zeigt.
operator-= Verringert einen angegebenen Offset von checked_array_iterator.
operator- Verringert einen Offset von einem Iterator und gibt den neuen checked_array_iterator zurück, der auf das eingefügte Element an der neuen Offsetposition zeigt.
operator[] Gibt einen Verweis auf ein Elementoffset aus dem Element zurück, das von checked_array_iterator mithilfe der angegebenen Anzahl von Positionen adressiert wird.

Anforderungen

Header:<iterator>

Namespace: stdext

checked_array_iterator::base

Stellt den zugrunde liegenden Iterator aus checked_array_iterator wieder her.

_Iterator base() const;

Hinweise

Weitere Informationen finden Sie unter Checked Iterators (Überprüfte Iteratoren).

Beispiel

// checked_array_iterators_base.cpp
// compile with: /EHsc
#include <iterator>
#include <vector>
#include <iostream>

int main() {
   using namespace std;

   int V1[10];

   for (int i = 0; i < 10 ; i++)
      V1[i] = i;

   int* bpos;

   stdext::checked_array_iterator<int*> rpos(V1, 10);
   rpos++;

   bpos = rpos.base ( );
   cout << "The iterator underlying rpos is bpos & it points to: "
        << *bpos << "." << endl;
}
/* Output:
The iterator underlying rpos is bpos & it points to: 1.
*/

checked_array_iterator::checked_array_iterator

Erstellt aus einem zugrunde liegenden Iterator einen standardmäßigen checked_array_iterator oder checked_array _iterator.

checked_array_iterator();

checked_array_iterator(
    ITerator ptr,
    size_t size,
    size_t index = 0);

Parameter

ptr
Ein Zeiger auf den Array.

size
Die Größe des Arrays.

Index
(Optional) Ein Element im Array zur Initialisierung des Iterators. Der Iterator wird standardmäßig mit dem ersten Element im Array initialisiert.

Hinweise

Weitere Informationen finden Sie unter Checked Iterators (Überprüfte Iteratoren).

Beispiel

// checked_array_iterators_ctor.cpp
// compile with: /EHsc
#include <iterator>
#include <iostream>

using namespace std;
using namespace stdext;

int main() {
   int a[] = {0, 1, 2, 3, 4};
   int b[5];
   copy(a, a + 5, checked_array_iterator<int*>(b,5));

   for (int i = 0 ; i < 5 ; i++)
      cout << b[i] << " ";
   cout << endl;

   checked_array_iterator<int*> checked_output_iterator(b,5);
   copy (a, a + 5, checked_output_iterator);
   for (int i = 0 ; i < 5 ; i++)
      cout << b[i] << " ";
   cout << endl;

   checked_array_iterator<int*> checked_output_iterator2(b,5,3);
   cout << *checked_output_iterator2 << endl;
}
/* Output:
0 1 2 3 4
0 1 2 3 4
3
*/

checked_array_iterator::d ifference_type

Ein Typ, mit dem der Unterschied zwischen zwei checked_array_iteratoren bereitgestellt wird, die auf Elemente innerhalb desselben Containers verweisen.

typedef typename iterator_traits<_Iterator>::difference_type difference_type;

Hinweise

Der checked_array_iterator-Differenztyp ist identisch mit den Differenztyp des Iterators.

Siehe checked_array_iterator::operator[] für ein Codebeispiel.

Weitere Informationen finden Sie unter Checked Iterators (Überprüfte Iteratoren).

checked_array_iterator::operator==

Prüft zwei checked_array_iteratoren auf Gleichheit.

bool operator==(const checked_array_iterator<_Iterator>& right) const;

Parameter

right
Der checked_array_iterator für die Durchführung von Gleichheitsüberprüfungen.

Hinweise

Weitere Informationen finden Sie unter Checked Iterators (Überprüfte Iteratoren).

Beispiel

// checked_array_iterators_opeq.cpp
// compile with: /EHsc
#include <iterator>
#include <iostream>

using namespace std;
using namespace stdext;

int main() {
   int a[] = {0, 1, 2, 3, 4};
   int b[5];
   copy(a, a + 5, checked_array_iterator<int*>(b,5));
   copy(a, a + 5, checked_array_iterator<int*>(b,5));

   checked_array_iterator<int*> checked_output_iterator(b,5);
   checked_array_iterator<int*> checked_output_iterator2(b,5);

   if (checked_output_iterator2 == checked_output_iterator)
      cout << "checked_array_iterators are equal" << endl;
   else
      cout << "checked_array_iterators are not equal" << endl;

   copy (a, a + 5, checked_output_iterator);
   checked_output_iterator++;

   if (checked_output_iterator2 == checked_output_iterator)
      cout << "checked_array_iterators are equal" << endl;
   else
      cout << "checked_array_iterators are not equal" << endl;
}
/* Output:
checked_array_iterators are equal
checked_array_iterators are not equal
*/

checked_array_iterator::operator!=

Prüft zwei checked_array_iteratoren auf Ungleichheit.

bool operator!=(const checked_array_iterator<_Iterator>& right) const;

Parameter

right
Der checked_array_iterator für die Durchführung von Ungleichheitsüberprüfungen.

Hinweise

Weitere Informationen finden Sie unter Checked Iterators (Überprüfte Iteratoren).

Beispiel

// checked_array_iterators_opneq.cpp
// compile with: /EHsc
#include <iterator>
#include <iostream>

using namespace std;
using namespace stdext;

int main() {
   int a[] = {0, 1, 2, 3, 4};
   int b[5];
   copy(a, a + 5, checked_array_iterator<int*>(b,5));
   copy(a, a + 5, checked_array_iterator<int*>(b,5));

   checked_array_iterator<int*> checked_output_iterator(b,5);
   checked_array_iterator<int*> checked_output_iterator2(b,5);

   if (checked_output_iterator2 != checked_output_iterator)
      cout << "checked_array_iterators are not equal" << endl;
   else
      cout << "checked_array_iterators are equal" << endl;

   copy (a, a + 5, checked_output_iterator);
   checked_output_iterator++;

   if (checked_output_iterator2 != checked_output_iterator)
      cout << "checked_array_iterators are not equal" << endl;
   else
      cout << "checked_array_iterators are equal" << endl;
}
/* Output:
checked_array_iterators are equal
checked_array_iterators are not equal
*/

checked_array_iterator::operator<

Testet, ob checked_array_iterator links vom Operator kleiner als checked_array_iterator auf der rechten Seite ist.

bool operator<(const checked_array_iterator<_Iterator>& right) const;

Parameter

right
Der checked_array_iterator für die Durchführung von Ungleichheitsüberprüfungen.

Hinweise

Weitere Informationen finden Sie unter Checked Iterators (Überprüfte Iteratoren).

Beispiel

// checked_array_iterators_oplt.cpp
// compile with: /EHsc
#include <iterator>
#include <iostream>

using namespace std;
using namespace stdext;

int main() {
   int a[] = {0, 1, 2, 3, 4};
   int b[5];
   copy(a, a + 5, checked_array_iterator<int*>(b,5));
   copy(a, a + 5, checked_array_iterator<int*>(b,5));

   checked_array_iterator<int*> checked_output_iterator(b,5);
   checked_array_iterator<int*> checked_output_iterator2(b,5);

   if (checked_output_iterator2 < checked_output_iterator)
      cout << "checked_output_iterator2 is less than checked_output_iterator" << endl;
   else
      cout << "checked_output_iterator2 is not less than checked_output_iterator" << endl;

   copy (a, a + 5, checked_output_iterator);
   checked_output_iterator++;

   if (checked_output_iterator2 < checked_output_iterator)
      cout << "checked_output_iterator2 is less than checked_output_iterator" << endl;
   else
      cout << "checked_output_iterator2 is not less than checked_output_iterator" << endl;
}
/* Output:
checked_output_iterator2 is not less than checked_output_iterator
checked_output_iterator2 is less than checked_output_iterator
*/

checked_array_iterator::operator>

Testet, ob checked_array_iterator links vom Operator größer als checked_array_iterator auf der rechten Seite ist.

bool operator>(const checked_array_iterator<_Iterator>& right) const;

Parameter

right
checked_array_iterator für den Vergleich.

Hinweise

Ein Codebeispiel finden Sie checked_array_iterator::operator< unter .

Weitere Informationen finden Sie unter Checked Iterators (Überprüfte Iteratoren).

checked_array_iterator::operator<=

Testet, ob checked_array_iterator links vom Operator kleiner oder gleich checked_array_iterator auf der rechten Seite ist.

bool operator<=(const checked_array_iterator<_Iterator>& right) const;

Parameter

right
checked_array_iterator für den Vergleich.

Hinweise

Ein Codebeispiel finden Sie checked_array_iterator::operator>= unter .

Weitere Informationen finden Sie unter Checked Iterators (Überprüfte Iteratoren).

checked_array_iterator::operator>=

Testet, ob checked_array_iterator links vom Operator größer oder gleich checked_array_iterator auf der rechten Seite ist.

bool operator>=(const checked_array_iterator<_Iterator>& right) const;

Parameter

right
checked_array_iterator für den Vergleich.

Hinweise

Weitere Informationen finden Sie unter Checked Iterators (Überprüfte Iteratoren).

Beispiel

// checked_array_iterators_opgteq.cpp
// compile with: /EHsc
#include <iterator>
#include <iostream>

using namespace std;
using namespace stdext;

int main() {
   int a[] = {0, 1, 2, 3, 4};
   int b[5];
   copy(a, a + 5, checked_array_iterator<int*>(b,5));
   copy(a, a + 5, checked_array_iterator<int*>(b,5));

   checked_array_iterator<int*> checked_output_iterator(b,5);
   checked_array_iterator<int*> checked_output_iterator2(b,5);

   if (checked_output_iterator2 >= checked_output_iterator)
      cout << "checked_output_iterator2 is greater than or equal to checked_output_iterator" << endl;
   else
      cout << "checked_output_iterator2 is less than checked_output_iterator" << endl;

   copy (a, a + 5, checked_output_iterator);
   checked_output_iterator++;

   if (checked_output_iterator2 >= checked_output_iterator)
      cout << "checked_output_iterator2 is greater than or equal to checked_output_iterator" << endl;
   else
      cout << "checked_output_iterator2 is less than checked_output_iterator" << endl;
}
/* Output:
checked_output_iterator2 is greater than or equal to checked_output_iterator
checked_output_iterator2 is less than checked_output_iterator
*/

checked_array_iterator::operator*

Gibt das Element zurück, das ein checked_array_iterator adressiert.

reference operator*() const;

Rückgabewert

Der Wert des von checked_array_iterator adressierten Elements.

Hinweise

Weitere Informationen finden Sie unter Checked Iterators (Überprüfte Iteratoren).

Beispiel

// checked_array_iterator_pointer.cpp
// compile with: /EHsc
#include <iterator>
#include <algorithm>
#include <vector>
#include <utility>
#include <iostream>

using namespace std;
using namespace stdext;

int main() {
   int a[] = {0, 1, 2, 3, 4};
   int b[5];
   pair<int, int> c[1];
   copy(a, a + 5, checked_array_iterator<int*>(b,5));

   for (int i = 0 ; i < 5 ; i++)
      cout << b[i] << endl;

    c[0].first = 10;
    c[0].second = 20;

   checked_array_iterator<int*> checked_output_iterator(b,5);
   checked_array_iterator<int*>::pointer p = &(*checked_output_iterator);
   checked_array_iterator<pair<int, int>*> chk_c(c, 1);
   checked_array_iterator<pair<int, int>*>::pointer p_c = &(*chk_c);

   cout << "b[0] = " << *p << endl;
   cout << "c[0].first = " << p_c->first << endl;
}
/* Output:
0
1
2
3
4
b[0] = 0
c[0].first = 10
*/

checked_array_iterator::operator->

Gibt einen Zeiger auf das Element zurück, das von checked_array_iterator adressiert wird.

pointer operator->() const;

Rückgabewert

Ein Zeiger auf das von checked_array_iterator adressierte Element.

Hinweise

Siehe checked_array_iterator::pointer für ein Codebeispiel.

Weitere Informationen finden Sie unter Checked Iterators (Überprüfte Iteratoren).

checked_array_iterator::operator++

Erhöht checked_array_iterator zum nächsten Element.

checked_array_iterator& operator++();

checked_array_iterator<_Iterator> operator++(int);

Rückgabewert

Der erste Operator gibt den präinkrementierten checked_array_iterator zurück, der zweite Postinkrementoperator gibt eine Kopie des inkrementierten checked_array_iterator zurück.

Hinweise

Weitere Informationen finden Sie unter Checked Iterators (Überprüfte Iteratoren).

Beispiel

// checked_array_iterators_op_plus_plus.cpp
// compile with: /EHsc
#include <vector>
#include <iostream>

int main() {
   using namespace stdext;
   using namespace std;
   int a[] = {6, 3, 77, 199, 222};
   int b[5];
   copy(a, a + 5, checked_array_iterator<int*>(b,5));

   checked_array_iterator<int*> checked_output_iterator(b,5);

   cout << *checked_output_iterator << endl;
   ++checked_output_iterator;
   cout << *checked_output_iterator << endl;
   checked_output_iterator++;
   cout << *checked_output_iterator << endl;
}
/* Output:
6
3
77
*/

checked_array_iterator::operator--

Verringert checked_array_iterator zum vorherigen Element.

checked_array_iterator<_Iterator>& operator--();

checked_array_iterator<_Iterator> operator--(int);

Rückgabewert

Der erste Operator gibt den prädekrementierten checked_array_iterator zurück, der zweite Postdekrementoperator gibt eine Kopie des dekrementierten checked_array_iterator zurück.

Hinweise

Weitere Informationen finden Sie unter Checked Iterators (Überprüfte Iteratoren).

Beispiel

// checked_array_iterators_op_minus_minus.cpp
// compile with: /EHsc
#include <vector>
#include <iostream>

int main() {
   using namespace stdext;
   using namespace std;
   int a[] = {6, 3, 77, 199, 222};
   int b[5];
   copy(a, a + 5, checked_array_iterator<int*>(b,5));

   checked_array_iterator<int*> checked_output_iterator(b,5);

   cout << *checked_output_iterator << endl;
   checked_output_iterator++;
   cout << *checked_output_iterator << endl;
   checked_output_iterator--;
   cout << *checked_output_iterator << endl;
}
/* Output:
6
3
6
*/

checked_array_iterator::operator+=

Fügt checked_array_iterator einem angegebenen Offset hinzu.

checked_array_iterator<_Iterator>& operator+=(difference_type _Off);

Parameter

_Aus
Der Offset, um den der Iterator inkrementiert werden soll.

Rückgabewert

Ein Verweis auf das von checked_array_iterator adressierte Element.

Hinweise

Weitere Informationen finden Sie unter Checked Iterators (Überprüfte Iteratoren).

Beispiel

// checked_array_iterators_op_plus_eq.cpp
// compile with: /EHsc
#include <vector>
#include <iostream>

int main() {
   using namespace stdext;
   using namespace std;
   int a[] = {6, 3, 77, 199, 222};
   int b[5];
   copy(a, a + 5, checked_array_iterator<int*>(b,5));

   checked_array_iterator<int*> checked_output_iterator(b,5);

   cout << *checked_output_iterator << endl;
   checked_output_iterator += 3;
   cout << *checked_output_iterator << endl;
}
/* Output:
6
199
*/

checked_array_iterator::operator+

Fügt einen Offset zu einem Iterator hinzu und gibt den neuen checked_array_iterator zurück, der auf das eingefügte Element an der neuen Offsetposition zeigt.

checked_array_iterator<_Iterator> operator+(difference_type _Off) const;

Parameter

_Aus
Der zum checked_array_iterator hinzuzufügende Offset.

Rückgabewert

Ein checked_array_iterator, der das Offsetelement adressiert.

Hinweise

Weitere Informationen finden Sie unter Checked Iterators (Überprüfte Iteratoren).

Beispiel

// checked_array_iterators_op_plus.cpp
// compile with: /EHsc
#include <vector>
#include <iostream>

int main() {
   using namespace stdext;
   using namespace std;
   int a[] = {6, 3, 77, 199, 222};
   int b[5];
   copy(a, a + 5, checked_array_iterator<int*>(b,5));

   checked_array_iterator<int*> checked_output_iterator(b,5);

   cout << *checked_output_iterator << endl;
   checked_output_iterator = checked_output_iterator + 3;
   cout << *checked_output_iterator << endl;
}
/* Output:
6
199
*/

checked_array_iterator::operator-=

Verringert einen angegebenen Offset von checked_array_iterator.

checked_array_iterator<_Iterator>& operator-=(difference_type _Off);

Parameter

_Aus
Der Offset, um den der Iterator inkrementiert werden soll.

Rückgabewert

Ein Verweis auf das von checked_array_iterator adressierte Element.

Hinweise

Weitere Informationen finden Sie unter Checked Iterators (Überprüfte Iteratoren).

Beispiel

// checked_array_iterators_op_minus_eq.cpp
// compile with: /EHsc
#include <vector>
#include <iostream>

int main() {
   using namespace stdext;
   using namespace std;
   int a[] = {6, 3, 77, 199, 222};
   int b[5];
   copy(a, a + 5, checked_array_iterator<int*>(b,5));

   checked_array_iterator<int*> checked_output_iterator(b,5);

   checked_output_iterator += 3;
   cout << *checked_output_iterator << endl;
   checked_output_iterator -= 2;
   cout << *checked_output_iterator << endl;
}
/* Output:
199
3
*/

checked_array_iterator::operator-

Verringert einen Offset von einem Iterator und gibt den neuen checked_array_iterator zurück, der auf das eingefügte Element an der neuen Offsetposition zeigt.

checked_array_iterator<_Iterator> operator-(difference_type _Off) const;

difference_type operator-(const checked_array_iterator& right) const;

Parameter

_Aus
Der von checked_array_iterator zu dekrementierende Offset.

Rückgabewert

Ein checked_array_iterator, der das Offsetelement adressiert.

Hinweise

Weitere Informationen finden Sie unter Checked Iterators (Überprüfte Iteratoren).

checked_array_iterator::operator[]

Gibt einen Verweis auf ein Elementoffset aus dem Element zurück, das von checked_array_iterator mithilfe der angegebenen Anzahl von Positionen adressiert wird.

reference operator[](difference_type _Off) const;

Parameter

_Aus
Der Offset von der checked_array_iterator-Adresse.

Rückgabewert

Der Verweis auf den Elementoffset.

Hinweise

Weitere Informationen finden Sie unter Checked Iterators (Überprüfte Iteratoren).

Beispiel

// checked_array_iterators_op_diff.cpp
// compile with: /EHsc
#include <vector>
#include <iostream>

int main() {
   using namespace std;
   int V1[10];

   for (int i = 0; i < 10 ; i++)
      V1[i] = i;

   // Declare a difference type for a parameter
   stdext::checked_array_iterator<int*>::difference_type diff = 2;

   stdext::checked_array_iterator<int*> VChkIter(V1, 10);

   stdext::checked_array_iterator<int*>::reference refrpos = VChkIter [diff];

   cout << refrpos + 1 << endl;
}
/* Output:
3
*/

checked_array_iterator::p ointer

Ein Typ, mit dem ein Zeiger auf ein Element bereitgestellt wird, die von checked_array_iterator adressiert werden.

typedef typename iterator_traits<_Iterator>::pointer pointer;

Hinweise

Siehe checked_array_iterator::operator* für ein Codebeispiel.

Weitere Informationen finden Sie unter Checked Iterators (Überprüfte Iteratoren).

checked_array_iterator::reference

Ein Typ, mit dem ein Verweis auf ein Element bereitgestellt wird, die von checked_array_iterator adressiert werden.

typedef typename iterator_traits<_Iterator>::reference reference;

Hinweise

Siehe checked_array_iterator::operator[] für ein Codebeispiel.

Weitere Informationen finden Sie unter Checked Iterators (Überprüfte Iteratoren).

Siehe auch

<iterator>
C++-Standardbibliotheksreferenz