<cliext/adapter>
(STL/CLR)
Der STL/CLR-Header <cliext/adapter>
gibt zwei Klassenvorlagen (collection_adapter
und range_adapter
) und die Funktionsvorlage make_collection
an.
Syntax
#include <cliext/adapter>
Anforderungen
Header:<cliext/adapter>
Namespace:cliext
Deklarationen
Klasse | Beschreibung |
---|---|
collection_adapter |
Umschließt die BCL-Auflistung (Base Class Library) als Bereich. |
range_adapter |
Umschließt den Bereich als BCL-Auflistung. |
Funktion | Beschreibung |
---|---|
make_collection |
Erstellt einen Bereichsadapter mit einem Iteratorpaar. |
Member
collection_adapter
Umschließt eine .NET-Auflistung für die Verwendung als STL/CLR-Container. A collection_adapter
ist eine Vorlagenklasse, die ein einfaches STL/CLR-Containerobjekt beschreibt. Sie umschließt eine BCL-Schnittstelle (Base Class Library) und gibt ein Iteratorpaar zurück, das Sie zum Bearbeiten der gesteuerten Sequenz verwenden.
Syntax
template<typename Coll>
ref class collection_adapter;
template<>
ref class collection_adapter<
System::Collections::ICollection>;
template<>
ref class collection_adapter<
System::Collections::IEnumerable>;
template<>
ref class collection_adapter<
System::Collections::IList>;
template<>
ref class collection_adapter<
System::Collections::IDictionary>;
template<typename Value>
ref class collection_adapter<
System::Collections::Generic::ICollection<Value>>;
template<typename Value>
ref class collection_adapter<
System::Collections::Generic::IEnumerable<Value>>;
template<typename Value>
ref class collection_adapter<
System::Collections::Generic::IList<Value>>;
template<typename Key,
typename Value>
ref class collection_adapter<
System::Collections::Generic::IDictionary<Key, Value>>;
Parameter
Coll
Der Typ der umschlossenen Auflistung.
Spezialisierungen
spezialisierung | Beschreibung |
---|---|
IEnumerable |
Sequenziert durch Elemente. |
ICollection |
Verwaltet eine Gruppe von Elementen. |
IList |
Verwaltet eine sortierte Gruppe von Elementen. |
IDictionary |
Verwalten Sie eine Gruppe von {key,value}-Paaren. |
IEnumerable<Value> |
Sequenzen durch typierte Elemente. |
ICollection<Value> |
Verwaltet eine Gruppe von typierten Elementen. |
IList<Value> |
Verwaltet eine sortierte Gruppe von typierten Elementen. |
IDictionary<Value> |
Verwaltet einen Satz von typierten {key,value}-Paaren. |
Member
Typdefinition | Beschreibung |
---|---|
collection_adapter::difference_type |
Der Typ eines Abstands mit Vorzeichen zwischen zwei Elementen. |
collection_adapter::iterator |
Der Typ eines Iterators für die gesteuerte Sequenz. |
collection_adapter::key_type |
Der Typ eines Wörterbuchschlüssels. |
collection_adapter::mapped_type |
Der Typ eines Wörterbuchwerts. |
collection_adapter::reference |
Der Typ eines Verweises auf ein Element. |
collection_adapter::size_type |
Der Typ eines Abstands mit Vorzeichen zwischen zwei Elementen. |
collection_adapter::value_type |
Der Typ eines Elements. |
Memberfunktion | Beschreibung |
---|---|
collection_adapter::base |
Legt die umschlossene BCL-Schnittstelle fest. |
collection_adapter::begin |
Legt den Anfang der kontrollierten Sequenz fest. |
collection_adapter::collection_adapter |
Erstellt ein Adapterobjekt. |
collection_adapter::end |
Legt das Ende der kontrollierten Sequenz fest. |
collection_adapter::size |
Ermittelt die Anzahl von Elementen. |
collection_adapter::swap |
Vertauscht den Inhalt von zwei Containern. |
Operator | Beschreibung |
---|---|
collection_adapter::operator= |
Ersetzt das gespeicherte BCL-Handle. |
Hinweise
Sie verwenden diese Vorlagenklasse, um einen BCL-Container als STL/CLR-Container zu bearbeiten. Im collection_adapter
Speicher wird ein Handle für eine BCL-Schnittstelle gespeichert, die wiederum eine Abfolge von Elementen steuert. Ein collection_adapter
Objekt X
gibt ein Eingabe-Iteratorpaar X.begin()
zurück, das X.end()
Sie verwenden, um die Elemente in der Reihenfolge zu besuchen. Einige der Spezialisierungen ermöglichen es Ihnen X.size()
auch, die Länge der kontrollierten Sequenz zu bestimmen.
collection_adapter::base
Legt die umschlossene BCL-Schnittstelle fest.
Syntax
Coll^ base();
Hinweise
Die Memberfunktion gibt das gespeicherte BCL-Schnittstellenhandle zurück.
Beispiel
// cliext_collection_adapter_base.cpp
// compile with: /clr
#include <cliext/adapter>
#include <cliext/deque>
typedef cliext::collection_adapter<
System::Collections::ICollection> Mycoll;
int main()
{
cliext::deque<wchar_t> d6x(6, L'x');
Mycoll c1(%d6x);
// display initial contents "x x x x x x "
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
System::Console::WriteLine("base() same = {0}", c1.base() == %c1);
return (0);
}
x x x x x x
base() same = True
collection_adapter::begin
Legt den Anfang der kontrollierten Sequenz fest.
Syntax
iterator begin();
Hinweise
Die Memberfunktion gibt einen Eingabe-Iterator zurück, der das erste Element der gesteuerten Sequenz oder direkt über das Ende einer leeren Sequenz bestimmt.
Beispiel
// cliext_collection_adapter_begin.cpp
// compile with: /clr
#include <cliext/adapter>
#include <cliext/deque>
typedef cliext::collection_adapter<
System::Collections::ICollection> Mycoll;
int main()
{
cliext::deque<wchar_t> d1;
d1.push_back(L'a');
d1.push_back(L'b');
d1.push_back(L'c');
Mycoll c1(%d1);
// display initial contents "a b c "
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// inspect first two items
Mycoll::iterator it = c1.begin();
System::Console::WriteLine("*begin() = {0}", *it);
System::Console::WriteLine("*++begin() = {0}", *++it);
return (0);
}
a b c
*begin() = a
*++begin() = b
collection_adapter::collection_adapter
Erstellt ein Adapterobjekt.
Syntax
collection_adapter();
collection_adapter(collection_adapter<Coll>% right);
collection_adapter(collection_adapter<Coll>^ right);
collection_adapter(Coll^ collection);
Parameter
collection
BCL-Handle zum Umbrechen.
right
Objekt, das kopiert werden soll.
Hinweise
Der Konstruktor:
collection_adapter();
initialisiert das gespeicherte Handle mit nullptr
.
Der Konstruktor:
collection_adapter(collection_adapter<Coll>% right);
initialisiert das gespeicherte Handle mit right.base()
.
Der Konstruktor:
collection_adapter(collection_adapter<Coll>^ right);
initialisiert das gespeicherte Handle mit right->base()
.
Der Konstruktor:
collection_adapter(Coll^ collection);
initialisiert das gespeicherte Handle mit collection
.
Beispiel
// cliext_collection_adapter_construct.cpp
// compile with: /clr
#include <cliext/adapter>
#include <cliext/deque>
typedef cliext::collection_adapter<
System::Collections::ICollection> Mycoll;
int main()
{
cliext::deque<wchar_t> d6x(6, L'x');
// construct an empty container
Mycoll c1;
System::Console::WriteLine("base() null = {0}", c1.base() == nullptr);
// construct with a handle
Mycoll c2(%d6x);
for each (wchar_t elem in c2)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// construct by copying another container
Mycoll c3(c2);
for each (wchar_t elem in c3)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// construct by copying a container handle
Mycoll c4(%c3);
for each (wchar_t elem in c4)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
base() null = True
x x x x x x
x x x x x x
x x x x x x
collection_adapter::difference_type
Die Typen eines signierten Abstands zwischen zwei Elementen.
Syntax
typedef int difference_type;
Hinweise
Der Typ beschreibt eine signierte Elementanzahl.
Beispiel
// cliext_collection_adapter_difference_type.cpp
// compile with: /clr
#include <cliext/adapter>
#include <cliext/deque>
typedef cliext::collection_adapter<
System::Collections::ICollection> Mycoll;
int main()
{
cliext::deque<wchar_t> d1;
d1.push_back(L'a');
d1.push_back(L'b');
d1.push_back(L'c');
Mycoll c1(%d1);
// display initial contents "a b c "
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// compute positive difference
Mycoll::difference_type diff = 0;
Mycoll::iterator it = c1.begin();
for (; it != c1.end(); ++it)
++diff;
System::Console::WriteLine("end()-begin() = {0}", diff);
return (0);
}
a b c
end()-begin() = 3
collection_adapter::end
Legt das Ende der kontrollierten Sequenz fest.
Syntax
iterator end();
Hinweise
Die Memberfunktion gibt einen Eingabe-Iterator zurück, der unmittelbar über das Ende der gesteuerten Sequenz verweist.
Beispiel
// cliext_collection_adapter_end.cpp
// compile with: /clr
#include <cliext/adapter>
#include <cliext/deque>
typedef cliext::collection_adapter<
System::Collections::ICollection> Mycoll;
int main()
{
cliext::deque<wchar_t> d1;
d1.push_back(L'a');
d1.push_back(L'b');
d1.push_back(L'c');
Mycoll c1(%d1);
// display initial contents "a b c "
Mycoll::iterator it = c1.begin();
for (; it != c1.end(); ++it)
System::Console::Write("{0} ", *it);
System::Console::WriteLine();
return (0);
}
a b c
collection_adapter::iterator
Der Typ eines Iterators für die gesteuerte Sequenz.
Syntax
typedef T1 iterator;
Hinweise
Der Typ beschreibt ein Objekt nicht angegebener Typs T1
, das als Eingabe-Iterator für die kontrollierte Sequenz dienen kann.
Beispiel
// cliext_collection_adapter_iterator.cpp
// compile with: /clr
#include <cliext/adapter>
#include <cliext/deque>
typedef cliext::collection_adapter<
System::Collections::ICollection> Mycoll;
int main()
{
cliext::deque<wchar_t> d1;
d1.push_back(L'a');
d1.push_back(L'b');
d1.push_back(L'c');
Mycoll c1(%d1);
// display initial contents "a b c "
Mycoll::iterator it = c1.begin();
for (; it != c1.end(); ++it)
System::Console::Write("{0} ", *it);
System::Console::WriteLine();
return (0);
}
a b c
collection_adapter::key_type
Der Typ eines Wörterbuchschlüssels.
Syntax
typedef Key key_type;
Hinweise
Der Typ ist ein Synonym für den Vorlagenparameter Key
, in einer Spezialisierung für IDictionary
oder IDictionary<Value>
; andernfalls ist er nicht definiert.
Beispiel
// cliext_collection_adapter_key_type.cpp
// compile with: /clr
#include <cliext/adapter>
#include <cliext/map>
typedef cliext::map<wchar_t, int> Mymap;
typedef cliext::collection_adapter<
System::Collections::Generic::IDictionary<wchar_t, int>> Mycoll;
typedef System::Collections::Generic::KeyValuePair<wchar_t,int> Mypair;
int main()
{
Mymap d1;
d1.insert(Mymap::make_value(L'a', 1));
d1.insert(Mymap::make_value(L'b', 2));
d1.insert(Mymap::make_value(L'c', 3));
Mycoll c1(%d1);
// display contents "[a 1] [b 2] [c 3] "
for each (Mypair elem in c1)
{
Mycoll::key_type key = elem.Key;
Mycoll::mapped_type value = elem.Value;
System::Console::Write("[{0} {1}] ", key, value);
}
System::Console::WriteLine();
return (0);
}
[a 1] [b 2] [c 3]
collection_adapter::mapped_type
Der Typ eines Wörterbuchwerts.
Syntax
typedef Value mapped_type;
Hinweise
Der Typ ist ein Synonym für den Vorlagenparameter Value
, in einer Spezialisierung für IDictionary
oder IDictionary<Value>
; andernfalls ist er nicht definiert.
Beispiel
// cliext_collection_adapter_mapped_type.cpp
// compile with: /clr
#include <cliext/adapter>
#include <cliext/map>
typedef cliext::map<wchar_t, int> Mymap;
typedef cliext::collection_adapter<
System::Collections::Generic::IDictionary<wchar_t, int>> Mycoll;
typedef System::Collections::Generic::KeyValuePair<wchar_t,int> Mypair;
int main()
{
Mymap d1;
d1.insert(Mymap::make_value(L'a', 1));
d1.insert(Mymap::make_value(L'b', 2));
d1.insert(Mymap::make_value(L'c', 3));
Mycoll c1(%d1);
// display contents "[a 1] [b 2] [c 3] "
for each (Mypair elem in c1)
{
Mycoll::key_type key = elem.Key;
Mycoll::mapped_type value = elem.Value;
System::Console::Write("[{0} {1}] ", key, value);
}
System::Console::WriteLine();
return (0);
}
[a 1] [b 2] [c 3]
collection_adapter::operator=
Ersetzt das gespeicherte BCL-Handle.
Syntax
collection_adapter<Coll>% operator=(collection_adapter<Coll>% right);
Parameter
right
Adapter, der kopiert werden soll.
Hinweise
Der Memberoperator kopiert right
in das Objekt und gibt dann zurück *this
. Sie verwenden es, um den gespeicherten BCL-Handle durch eine Kopie des gespeicherten BCL-Handles zu right
ersetzen.
Beispiel
// cliext_collection_adapter_operator_as.cpp
// compile with: /clr
#include <cliext/adapter>
#include <cliext/deque>
typedef cliext::collection_adapter<
System::Collections::ICollection> Mycoll;
int main()
{
cliext::deque<wchar_t> d1;
d1.push_back(L'a');
d1.push_back(L'b');
d1.push_back(L'c');
Mycoll c1(%d1);
// display initial contents "a b c "
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// assign to a new container
Mycoll c2;
c2 = c1;
for each (wchar_t elem in c2)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
a b c
a b c
collection_adapter::reference
Der Typ eines Verweises auf ein Element.
Syntax
typedef value_type% reference;
Hinweise
Der Typ beschreibt einen Verweis auf ein Element.
Beispiel
// cliext_collection_adapter_reference.cpp
// compile with: /clr
#include <cliext/adapter>
#include <cliext/deque>
typedef cliext::collection_adapter<
System::Collections::ICollection> Mycoll;
int main()
{
cliext::deque<wchar_t> d1;
d1.push_back(L'a');
d1.push_back(L'b');
d1.push_back(L'c');
Mycoll c1(%d1);
// display initial contents "a b c "
Mycoll::iterator it = c1.begin();
for (; it != c1.end(); ++it)
{ // get a reference to an element
Mycoll::reference ref = *it;
System::Console::Write("{0} ", ref);
}
System::Console::WriteLine();
return (0);
}
a b c
collection_adapter::size
Ermittelt die Anzahl von Elementen.
Syntax
size_type size();
Hinweise
Die Memberfunktion gibt die Länge der gesteuerten Sequenz zurück. Es ist nicht in einer Spezialisierung für IEnumerable
oder IEnumerable<Value>
.
Beispiel
// cliext_collection_adapter_size.cpp
// compile with: /clr
#include <cliext/adapter>
#include <cliext/deque>
typedef cliext::collection_adapter<
System::Collections::ICollection> Mycoll;
int main()
{
cliext::deque<wchar_t> d6x(6, L'x');
Mycoll c1(%d6x);
// display initial contents "x x x x x x "
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
System::Console::WriteLine("size() = {0}", c1.size());
return (0);
}
x x x x x x
size() = 6
collection_adapter::size_type
Der Typ eines Abstands mit Vorzeichen zwischen zwei Elementen.
Syntax
typedef int size_type;
Hinweise
Der Typ beschreibt eine nicht negative Elementanzahl.
Beispiel
// cliext_collection_adapter_size_type.cpp
// compile with: /clr
#include <cliext/adapter>
#include <cliext/deque>
typedef cliext::collection_adapter<
System::Collections::ICollection> Mycoll;
int main()
{
cliext::deque<wchar_t> d6x(6, L'x');
Mycoll c1(%d6x);
// display initial contents "x x x x x x"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
Mycoll::size_type size = c1.size();
System::Console::WriteLine("size() = {0}", size);
return (0);
}
x x x x x x
size() = 6
collection_adapter::swap
Vertauscht den Inhalt von zwei Containern.
Syntax
void swap(collection_adapter<Coll>% right);
Parameter
right
Container für den Tausch von Inhalten.
Hinweise
Die Memberfunktion tauscht die gespeicherten BCL-Handles zwischen *this
und right
.
Beispiel
// cliext_collection_adapter_swap.cpp
// compile with: /clr
#include <cliext/adapter>
#include <cliext/deque>
typedef cliext::collection_adapter<
System::Collections::ICollection> Mycoll;
int main()
{
cliext::deque<wchar_t> d1;
d1.push_back(L'a');
d1.push_back(L'b');
d1.push_back(L'c');
Mycoll c1(%d1);
// display initial contents " a b c"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// construct another container with repetition of values
cliext::deque<wchar_t> d2(5, L'x');
Mycoll c2(%d2);
for each (wchar_t elem in c2)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// swap and redisplay
c1.swap(c2);
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
for each (wchar_t elem in c2)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
a b c
x x x x x
x x x x x
a b c
collection_adapter::value_type
Der Typ eines Elements.
Syntax
typedef Value value_type;
Hinweise
Der Typ ist ein Synonym für den Vorlagenparameter Value
, wenn er in der Spezialisierung vorhanden ist; andernfalls ist er ein Synonym für System::Object^
.
Beispiel
// cliext_collection_adapter_value_type.cpp
// compile with: /clr
#include <cliext/adapter>
#include <cliext/deque>
typedef cliext::collection_adapter<
System::Collections::ICollection> Mycoll;
int main()
{
cliext::deque<wchar_t> d1;
d1.push_back(L'a');
d1.push_back(L'b');
d1.push_back(L'c');
Mycoll c1(%d1);
// display contents "a b c" using value_type
for (Mycoll::iterator it = c1.begin();
it != c1.end(); ++it)
{ // store element in value_type object
Mycoll::value_type val = *it;
System::Console::Write("{0} ", val);
}
System::Console::WriteLine();
return (0);
}
a b c
make_collection (STL/CLR)
Erstellen Sie ein range_adapter
Iteratorpaar.
Syntax
template<typename Iter>
range_adapter<Iter> make_collection(Iter first, Iter last);
Parameter
Iter
Der Typ des umschlossenen Iterators.
first
Erster Iterator, der umbrochen werden soll.
last
Second iterator to wrap.
Hinweise
Die Funktionsvorlage gibt zurück gcnew range_adapter<Iter>(first, last)
. Sie verwenden es, um ein range_adapter<Iter>
Objekt aus einem Iteratorpaar zu konstruieren.
Beispiel
// cliext_make_collection.cpp
// compile with: /clr
#include <cliext/adapter>
#include <cliext/deque>
typedef cliext::deque<wchar_t> Mycont;
typedef cliext::range_adapter<Mycont::iterator> Myrange;
int main()
{
cliext::deque<wchar_t> d1;
d1.push_back(L'a');
d1.push_back(L'b');
d1.push_back(L'c');
// display contents " a b c"
for each (wchar_t elem in d1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
System::Collections::ICollection^ p1 =
cliext::make_collection(d1.begin(), d1.end());
System::Console::WriteLine("Count = {0}", p1->Count);
System::Console::WriteLine("IsSynchronized = {0}",
p1->IsSynchronized);
System::Console::WriteLine("SyncRoot not nullptr = {0}",
p1->SyncRoot != nullptr);
// copy the sequence
cli::array<System::Object^>^ a1 = gcnew cli::array<System::Object^>(5);
a1[0] = L'|';
p1->CopyTo(a1, 1);
a1[4] = L'|';
for each (wchar_t elem in a1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
a b c
Count = 3
IsSynchronized = False
SyncRoot not nullptr = True
| a b c |
range_adapter (STL/CLR)
Eine Vorlagenklasse, die ein Paar Iteratoren umschließt, die zum Implementieren mehrerer BCL-Schnittstellen (Base Class Library) verwendet werden. Sie verwenden die range_adapter, um einen STL/CLR-Bereich so zu bearbeiten, als ob es sich um eine BCL-Auflistung handelte.
Syntax
template<typename Iter>
ref class range_adapter
: public
System::Collections::IEnumerable,
System::Collections::ICollection,
System::Collections::Generic::IEnumerable<Value>,
System::Collections::Generic::ICollection<Value>
{ ..... };
Parameter
Iter
Der Typ, der den umschlossenen Iteratoren zugeordnet ist.
Member
Memberfunktion | Beschreibung |
---|---|
range_adapter::range_adapter |
Erstellt ein Adapterobjekt. |
Operator | Beschreibung |
---|---|
range_adapter::operator= |
Ersetzt das gespeicherte Iteratorpaar. |
Schnittstellen
Schnittstelle | Beschreibung |
---|---|
IEnumerable | Durchläuft Elemente in der Auflistung. |
ICollection | Verwaltet eine Gruppe von Elementen. |
IEnumerable<T> | Durchläuft typierte Elemente in der Auflistung. |
ICollection<T> | Verwaltet eine Gruppe von typierten Elementen. |
Hinweise
Die range_adapter speichert ein Iteratorpaar, das wiederum eine Abfolge von Elementen abgrenzt. Das Objekt implementiert vier BCL-Schnittstellen, mit denen Sie die Elemente durchlaufen können, in der reihenfolge. Sie verwenden diese Vorlagenklasse, um STL/CLR-Bereiche ähnlich wie BCL-Container zu bearbeiten.
range_adapter::operator=
Ersetzt das gespeicherte Iteratorpaar.
Syntax
range_adapter<Iter>% operator=(range_adapter<Iter>% right);
Parameter
right
Adapter, der kopiert werden soll.
Hinweise
Der Memberoperator kopiert right
in das Objekt und gibt dann zurück *this
. Sie verwenden es, um das gespeicherte Iteratorpaar durch eine Kopie des gespeicherten Iteratorpaars in right
.
Beispiel
// cliext_range_adapter_operator_as.cpp
// compile with: /clr
#include <cliext/adapter>
#include <cliext/deque>
typedef cliext::deque<wchar_t> Mycont;
typedef cliext::range_adapter<Mycont::iterator> Myrange;
int main()
{
cliext::deque<wchar_t> d1;
d1.push_back(L'a');
d1.push_back(L'b');
d1.push_back(L'c');
Myrange c1(d1.begin(), d1.end());
// display contents " a b c"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// assign to a new container
Myrange c2;
c2 = c1;
for each (wchar_t elem in c2)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
a b c
a b c
range_adapter::range_adapter
Erstellt ein Adapterobjekt.
Syntax
range_adapter();
range_adapter(range_adapter<Iter>% right);
range_adapter(range_adapter<Iter>^ right);
range_adapter(Iter first, Iter last);
Parameter
first
Erster Iterator, der umbrochen werden soll.
last
Second iterator to wrap.
right
Objekt, das kopiert werden soll.
Hinweise
Der Konstruktor:
range_adapter();
initialisiert das gespeicherte Iteratorpaar mit standardmäßig konstruierten Iteratoren.
Der Konstruktor:
range_adapter(range_adapter<Iter>% right);
initialisiert das gespeicherte Iteratorpaar durch Kopieren des in right
.
Der Konstruktor:
range_adapter(range_adapter<Iter>^ right);
initialisiert das gespeicherte Iteratorpaar durch Kopieren des in *right
.
Der Konstruktor:
range_adapter(Iter^ first, last);
initialisiert das gespeicherte Iteratorpaar mit first
und last
.
Beispiel
// cliext_range_adapter_construct.cpp
// compile with: /clr
#include <cliext/adapter>
#include <cliext/deque>
typedef cliext::deque<wchar_t> Mycont;
typedef cliext::range_adapter<Mycont::iterator> Myrange;
int main()
{
cliext::deque<wchar_t> d1;
d1.push_back(L'a');
d1.push_back(L'b');
d1.push_back(L'c');
// construct an empty adapter
Myrange c1;
// construct with an iterator pair
Myrange c2(d1.begin(), d1.end());
for each (wchar_t elem in c2)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// construct by copying another adapter
Myrange c3(c2);
for each (wchar_t elem in c3)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// construct by copying an adapter handle
Myrange c4(%c3);
for each (wchar_t elem in c4)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
a b c
a b c
a b c