vector (STL/CLR)
Класс шаблона описывает объект, который управляет последовательностью элементов с случайным доступом. Контейнер vector
используется для управления последовательностью элементов в качестве непрерывного блока хранилища. Блок реализуется в виде массива, который растет по требованию.
В приведенном ниже описании значение совпадает с GValue
значением, если последний не является типом ссылок, в этом случае это.Value^
Синтаксис
template<typename Value>
ref class vector
: public
System::ICloneable,
System::Collections::IEnumerable,
System::Collections::ICollection,
System::Collections::Generic::IEnumerable<GValue>,
System::Collections::Generic::ICollection<GValue>,
System::Collections::Generic::IList<GValue>,
Microsoft::VisualC::StlClr::IVector<GValue>
{ ..... };
Параметры
Value
Тип элемента в управляемой последовательности.
Требования
Заголовок:<cliext/vector>
Пространство имен: cliext
Объявления
Определение типа | Description |
---|---|
vector::const_iterator (STL/CLR) | Тип постоянного итератора для управляемой последовательности. |
vector::const_reference (STL/CLR) | Тип постоянной ссылки на элемент. |
vector::const_reverse_iterator (STL/CLR) | Тип постоянного обратного итератора для управляемой последовательности. |
vector::difference_type (STL/CLR) | Тип расстояния со знаком между двумя элементами. |
vector::generic_container (STL/CLR) | Тип универсального интерфейса для контейнера. |
vector::generic_iterator (STL/CLR) | Тип итератора универсального интерфейса для контейнера. |
vector::generic_reverse_iterator (STL/CLR) | Тип обратного итератора для универсального интерфейса контейнера. |
vector::generic_value (STL/CLR) | Тип элемента универсального интерфейса для контейнера. |
vector::iterator (STL/CLR) | Тип итератора для управляемой последовательности. |
vector::reference (STL/CLR) | Тип ссылки на элемент. |
vector::reverse_iterator (STL/CLR) | Тип обратного итератора для управляемой последовательности. |
vector::size_type (STL/CLR) | Тип расстояния со знаком между двумя элементами. |
vector::value_type (STL/CLR) | Тип элемента. |
Функция-член | Description |
---|---|
vector::assign (STL/CLR) | Заменяет все элементы. |
vector::at (STL/CLR) | Обращается к элементу в указанной позиции. |
vector::back (STL/CLR) | Обращается к последнему элементу. |
vector::begin (STL/CLR) | Задает начало управляемой последовательности. |
vector::capacity (STL/CLR) | Сообщает размер выделенного хранилища для контейнера. |
vector::clear (STL/CLR) | Удаляет все элементы. |
vector::empty (STL/CLR) | Проверяет отсутствие элементов. |
vector::end (STL/CLR) | Задает конец управляемой последовательности. |
vector::erase (STL/CLR) | Удаляет элементы в указанных позициях. |
vector::front (STL/CLR) | Обращается к первому элементу. |
vector::insert (STL/CLR) | Добавляет элементы по указанной позиции. |
vector::pop_back (STL/CLR) | Удаляет последний элемент. |
vector::push_back (STL/CLR) | Добавляет новый последний элемент. |
vector::rbegin (STL/CLR) | Задает начало обратной управляемой последовательности. |
vector::rend (STL/CLR) | Задает конец обратной управляемой последовательности. |
vector::reserve (STL/CLR) | Обеспечивает минимальную емкость роста для контейнера. |
vector::resize (STL/CLR) | Изменяет количество элементов. |
vector::size (STL/CLR) | Подсчитывает количество элементов. |
vector::swap (STL/CLR) | Меняет местами содержимое двух контейнеров. |
vector::to_array (STL/CLR) | Копирует контролируемую последовательность в новый массив. |
vector::vector (STL/CLR) | Создает объект контейнера. |
Свойство | Description |
---|---|
vector::back_item (STL/CLR) | Обращается к последнему элементу. |
vector::front_item (STL/CLR) | Обращается к первому элементу. |
Operator | Description |
---|---|
vector::operator= (STL/CLR) | Заменяет управляемую последовательность. |
vector::operator (STL/CLR) | Обращается к элементу в указанной позиции. |
operator!= (vector) (STL/CLR) | Определяет, не равен ли vector объект другому vector объекту. |
оператор< (vector) (STL/CLR) | Определяет, меньше ли vector объект, чем другой vector объект. |
operator<= (vector) (STL/CLR) | Определяет vector , меньше ли объект или равен другому vector объекту. |
operator== (vector) (STL/CLR) | Определяет, равен ли vector объект другому vector объекту. |
оператор> (vector) (STL/CLR) | Определяет, больше ли vector объект, чем другой vector объект. |
operator>= (vector) (STL/CLR) | Определяет vector , больше ли объект или равен другому vector объекту. |
Интерфейсы
Интерфейс | Description |
---|---|
ICloneable | Дублировать объект. |
IEnumerable | Последовательность элементов. |
ICollection | Обслуживание группы элементов. |
IEnumerable<T> | Последовательность с помощью типизированных элементов. |
ICollection<T> | Сохраняйте группу типизированных элементов. |
IList<T> | Обслуживание упорядоченной группы типизированных элементов. |
Значение IVector<> | Обслуживание универсального контейнера. |
Замечания
Объект выделяет и освобождает хранилище для последовательности, которую он управляет с помощью сохраненного массива элементов Value , который растет по требованию. Рост происходит таким образом, чтобы стоимость добавления нового элемента была амортизирована постоянно. Другими словами, стоимость добавления элементов в конце не увеличивается в среднем, так как длина управляемой последовательности становится больше. Таким образом, вектор является хорошим кандидатом для базового контейнера для стека классов шаблонов (STL/CLR).
Поддерживает vector
итераторы случайного доступа, что означает, что можно ссылаться на элемент непосредственно с учетом его числовой позиции, отсчитывая от нуля для первого (переднего) элемента до size() - 1
последнего (back) элемента. Это также означает, что вектор является хорошим кандидатом для базового контейнера для класса шаблона priority_queue (STL/CLR).
Итератор вектора сохраняет дескриптор связанного объекта вектора, а также предвзятость указанного элемента. Итераторы можно использовать только с связанными объектами контейнеров. Предвзятость элемента вектора совпадает с его позицией.
Вставка или удаление элементов может изменить значение элемента, хранящееся в заданной позиции, поэтому значение, указанное итератором, также может измениться. (Контейнеру может потребоваться скопировать элементы вверх или вниз, чтобы создать отверстие перед вставкой или заполнить отверстие после удаления.) Тем не менее, итератор вектора остается допустимым до тех пор, пока его предвзятость находится в диапазоне [0, size()]
. Кроме того, допустимый итератор остается деreferencable - вы можете использовать его для доступа или изменения значения элемента, которое он назначает , до тех пор, пока его смещение не равно size()
.
Удаление или удаление элемента вызывает деструктор для его сохраненного значения. Удаление контейнера удаляет все элементы. Таким образом, контейнер, тип элемента которого является классом ссылок, гарантирует, что никакие элементы не выходят из контейнера. Обратите внимание, что контейнер дескрипторов не уничтожает его элементы.
Участники
vector::assign (STL/CLR)
Заменяет все элементы.
Синтаксис
void assign(size_type count, value_type val);
template<typename InIt>
void assign(InIt first, InIt last);
void assign(System::Collections::Generic::IEnumerable<Value>^ right);
Параметры
count
Число элементов для вставки.
first
Начало диапазона для вставки.
last
Конец диапазона для вставки.
right
Перечисление для вставки.
Val
Значение элемента для вставки.
Замечания
Первая функция-член заменяет контролируемую последовательность повторением элементов счетчика значений. Он используется для заполнения контейнера элементами с одинаковым значением.
Если InIt
это целочисленный тип, вторая функция-член работает так же, как assign((size_type)first, (value_type)last)
. В противном случае он заменяет управляемую последовательность последовательностью [first
, last
). Он используется для создания управляемой последовательности копии другой последовательности.
Третья функция-член заменяет контролируемую последовательность последовательностью, назначенной перечислителем справа. Он используется для создания управляемой последовательности копии последовательности, описанной перечислителем.
Пример
// cliext_vector_assign.cpp
// compile with: /clr
#include <cliext/vector>
int main()
{
cliext::vector<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// assign a repetition of values
cliext::vector<wchar_t> c2;
c2.assign(6, L'x');
for each (wchar_t elem in c2)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// assign an iterator range
c2.assign(c1.begin(), c1.end() - 1);
for each (wchar_t elem in c2)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// assign an enumeration
c2.assign( // NOTE: cast is not needed
(System::Collections::Generic::IEnumerable<wchar_t>^)%c1);
for each (wchar_t elem in c2)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
x x x x x x
a b
a b c
vector::at (STL/CLR)
Обращается к элементу в указанной позиции.
Синтаксис
reference at(size_type pos);
Параметры
pos
Позиция элемента, к которому осуществляется доступ.
Замечания
Функция-член возвращает ссылку на элемент управляемой последовательности в позиции pos. Вы используете его для чтения или записи элемента, позиция которого вы знаете.
Пример
// cliext_vector_at.cpp
// compile with: /clr
#include <cliext/vector>
int main()
{
cliext::vector<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display contents " a b c" using at
for (int i = 0; i < c1.size(); ++i)
System::Console::Write("{0} ", c1.at(i));
System::Console::WriteLine();
// change an entry and redisplay
c1.at(1) = L'x';
for (int i = 0; i < c1.size(); ++i)
System::Console::Write("{0} ", c1[i]);
System::Console::WriteLine();
return (0);
}
a b c
a x c
vector::back (STL/CLR)
Обращается к последнему элементу.
Синтаксис
reference back();
Замечания
Функция-член возвращает ссылку на последний элемент управляемой последовательности, который должен быть непуст. Вы используете его для доступа к последнему элементу, когда вы знаете, что он существует.
Пример
// cliext_vector_back.cpp
// compile with: /clr
#include <cliext/vector>
int main()
{
cliext::vector<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display initial contents " a b c"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// inspect last item
System::Console::WriteLine("back() = {0}", c1.back());
// alter last item and reinspect
c1.back() = L'x';
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
a b c
back() = c
a b x
vector::back_item (STL/CLR)
Обращается к последнему элементу.
Синтаксис
property value_type back_item;
Замечания
Свойство обращается к последнему элементу управляемой последовательности, который должен быть непуст. Вы используете его для чтения или записи последнего элемента, когда вы знаете, что он существует.
Пример
// cliext_vector_back_item.cpp
// compile with: /clr
#include <cliext/vector>
int main()
{
cliext::vector<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display initial contents " a b c"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// inspect last item
System::Console::WriteLine("back_item = {0}", c1.back_item);
// alter last item and reinspect
c1.back_item = L'x';
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
a b c
back_item = c
a b x
vector::begin (STL/CLR)
Задает начало управляемой последовательности.
Синтаксис
iterator begin();
Замечания
Функция-член возвращает итератор случайного доступа, указывающий первый элемент управляемой последовательности или только за пределами пустой последовательности. Он используется для получения итератора, который обозначает current
начало управляемой последовательности, но его состояние может измениться, если длина управляемой последовательности изменяется.
Пример
// cliext_vector_begin.cpp
// compile with: /clr
#include <cliext/vector>
int main()
{
cliext::vector<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// 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
cliext::vector<wchar_t>::iterator it = c1.begin();
System::Console::WriteLine("*begin() = {0}", *it);
System::Console::WriteLine("*++begin() = {0}", *++it);
// alter first two items and reinspect
*--it = L'x';
*++it = L'y';
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
a b c
*begin() = a
*++begin() = b
x y c
vector::capacity (STL/CLR)
Сообщает размер выделенного хранилища для контейнера.
Синтаксис
size_type capacity();
Замечания
Функция-член возвращает хранилище, выделенное для хранения управляемой последовательности, значение по крайней мере как вектор::size (STL/CLR)()
. Он используется для определения того, сколько контейнер может расти, прежде чем он должен перераспределить хранилище для управляемой последовательности.
Пример
// cliext_vector_capacity.cpp
// compile with: /clr
#include <cliext/vector>
int main()
{
cliext::vector<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display initial contents " a b c"
for (int i = 0; i < c1.size(); ++i)
System::Console::Write("{0} ", c1.at(i));
System::Console::WriteLine();
// increase capacity
cliext::vector<wchar_t>::size_type cap = c1.capacity();
System::Console::WriteLine("capacity() = {0}, ok = {1}",
cap, c1.size() <= cap);
c1.reserve(cap + 5);
System::Console::WriteLine("capacity() = {0}, ok = {1}",
c1.capacity(), cap + 5 <= c1.capacity());
return (0);
}
a b c
capacity() = 4, ok = True
capacity() = 9, ok = True
vector::clear (STL/CLR)
Удаляет все элементы.
Синтаксис
void clear();
Замечания
Функция-член фактически вызывает vector::erase (STL/CLR)(
vector::begin (STL/CLR)(),
vector::end (STL/CLR)())
. Используйте его, чтобы убедиться, что управляемая последовательность пуста.
Пример
// cliext_vector_clear.cpp
// compile with: /clr
#include <cliext/vector>
int main()
{
cliext::vector<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display initial contents " a b c"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// clear the container and reinspect
c1.clear();
System::Console::WriteLine("size() = {0}", c1.size());
// add elements and clear again
c1.push_back(L'a');
c1.push_back(L'b');
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
c1.clear();
System::Console::WriteLine("size() = {0}", c1.size());
return (0);
}
a b c
size() = 0
a b
size() = 0
vector::const_iterator (STL/CLR)
Тип постоянного итератора для управляемой последовательности.
Синтаксис
typedef T2 const_iterator;
Замечания
Тип описывает объект неопределенного типа T2
, который может служить итератором произвольного доступа для управляемой последовательности.
Пример
// cliext_vector_const_iterator.cpp
// compile with: /clr
#include <cliext/vector>
int main()
{
cliext::vector<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display contents " a b c"
cliext::vector<wchar_t>::const_iterator cit = c1.begin();
for (; cit != c1.end(); ++cit)
System::Console::Write("{0} ", *cit);
System::Console::WriteLine();
return (0);
}
a b c
vector::const_reference (STL/CLR)
Тип постоянной ссылки на элемент.
Синтаксис
typedef value_type% const_reference;
Замечания
Тип описывает константную ссылку на элемент.
Пример
// cliext_vector_const_reference.cpp
// compile with: /clr
#include <cliext/vector>
int main()
{
cliext::vector<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display initial contents " a b c"
cliext::vector<wchar_t>::const_iterator cit = c1.begin();
for (; cit != c1.end(); ++cit)
{ // get a const reference to an element
cliext::vector<wchar_t>::const_reference cref = *cit;
System::Console::Write("{0} ", cref);
}
System::Console::WriteLine();
return (0);
}
a b c
vector::const_reverse_iterator (STL/CLR)
Тип константного обратного итератора для управляемой последовательности..
Синтаксис
typedef T4 const_reverse_iterator;
Замечания
Тип описывает объект неопределенного типа T4
, который может служить константным обратным итератором для управляемой последовательности.
Пример
// cliext_vector_const_reverse_iterator.cpp
// compile with: /clr
#include <cliext/vector>
int main()
{
cliext::vector<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display contents " a b c" reversed
cliext::vector<wchar_t>::const_reverse_iterator crit = c1.rbegin();
cliext::vector<wchar_t>::const_reverse_iterator crend = c1.rend();
for (; crit != crend; ++crit)
System::Console::Write("{0} ", *crit);
System::Console::WriteLine();
return (0);
}
c b a
vector::difference_type (STL/CLR)
Типы подписанного расстояния между двумя элементами.
Синтаксис
typedef int difference_type;
Замечания
Тип описывает число подписанных элементов.
Пример
// cliext_vector_difference_type.cpp
// compile with: /clr
#include <cliext/vector>
int main()
{
cliext::vector<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display initial contents " a b c"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// compute positive difference
cliext::vector<wchar_t>::difference_type diff = 0;
for (cliext::vector<wchar_t>::iterator it = c1.begin();
it != c1.end(); ++it) ++diff;
System::Console::WriteLine("end()-begin() = {0}", diff);
// compute negative difference
diff = 0;
for (cliext::vector<wchar_t>::iterator it = c1.end();
it != c1.begin(); --it) --diff;
System::Console::WriteLine("begin()-end() = {0}", diff);
return (0);
}
a b c
end()-begin() = 3
begin()-end() = -3
vector::empty (STL/CLR)
Проверяет отсутствие элементов.
Синтаксис
bool empty();
Замечания
Эта функция-член возвращает значение true для пустой управляемой последовательности. Он эквивалентен vector::size (STL/CLR)() == 0
. Он используется для проверки того, является ли вектор пустым.
Пример
// cliext_vector_empty.cpp
// compile with: /clr
#include <cliext/vector>
int main()
{
cliext::vector<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display initial contents " a b c"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
System::Console::WriteLine("size() = {0}", c1.size());
System::Console::WriteLine("empty() = {0}", c1.empty());
// clear the container and reinspect
c1.clear();
System::Console::WriteLine("size() = {0}", c1.size());
System::Console::WriteLine("empty() = {0}", c1.empty());
return (0);
}
a b c
size() = 3
empty() = False
size() = 0
empty() = True
vector::end (STL/CLR)
Задает конец управляемой последовательности.
Синтаксис
iterator end();
Замечания
Функция-член возвращает итератор случайного доступа, который указывает непосредственно за пределы управляемой последовательности. Он используется для получения итератора, который обозначает current
конец управляемой последовательности, но его состояние может измениться, если длина управляемой последовательности изменяется.
Пример
// cliext_vector_end.cpp
// compile with: /clr
#include <cliext/vector>
int main()
{
cliext::vector<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display initial contents " a b c"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// inspect last two items
cliext::vector<wchar_t>::iterator it = c1.end();
--it;
System::Console::WriteLine("*-- --end() = {0}", *--it);
System::Console::WriteLine("*--end() = {0}", *++it);
// alter first two items and reinspect
*--it = L'x';
*++it = L'y';
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
a b c
*-- --end() = b
*--end() = c
a x y
vector::erase (STL/CLR)
Удаляет элементы в указанных позициях.
Синтаксис
iterator erase(iterator where);
iterator erase(iterator first, iterator last);
Параметры
first
Начало диапазона для удаления.
last
Конец диапазона для удаления.
where
Элемент для удаления.
Замечания
Первая функция-член удаляет элемент управляемой последовательности, на который указывает место. Он используется для удаления одного элемента.
Вторая функция-член удаляет элементы управляемой последовательности в диапазоне [first
, last
). Он используется для удаления нуля или нескольких смежных элементов.
Обе функции-члены возвращают итератор, указывающий первый элемент, оставшийся за пределами удаленных элементов, или vector::end (STL/CLR),()
если такой элемент отсутствует.
При удалении элементов число копий элементов линейно в количестве элементов между окончанием стирания и более близким концом последовательности. (При удалении одного или нескольких элементов в любом конце последовательности не происходит никаких копий элементов.)
Пример
// cliext_vector_erase.cpp
// compile with: /clr
#include <cliext/vector>
int main()
{
cliext::vector<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display initial contents " a b c"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// erase an element and reinspect
System::Console::WriteLine("erase(begin()) = {0}",
*c1.erase(c1.begin()));
// add elements and display " b c d e"
c1.push_back(L'd');
c1.push_back(L'e');
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// erase all but end
cliext::vector<wchar_t>::iterator it = c1.end();
System::Console::WriteLine("erase(begin(), end()-1) = {0}",
*c1.erase(c1.begin(), --it));
System::Console::WriteLine("size() = {0}", c1.size());
return (0);
}
a b c
erase(begin()) = b
b c d e
erase(begin(), end()-1) = e
size() = 1
vector::front (STL/CLR)
Обращается к первому элементу.
Синтаксис
reference front();
Замечания
Функция-член возвращает ссылку на первый элемент управляемой последовательности, который должен быть непуст. Вы используете его для чтения или записи первого элемента, когда вы знаете, что он существует.
Пример
// cliext_vector_front.cpp
// compile with: /clr
#include <cliext/vector>
int main()
{
cliext::vector<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display initial contents " a b c"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// inspect first item
System::Console::WriteLine("front() = {0}", c1.front());
// alter first item and reinspect
c1.front() = L'x';
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
a b c
front() = a
x b c
vector::front_item (STL/CLR)
Обращается к первому элементу.
Синтаксис
property value_type front_item;
Замечания
Свойство обращается к первому элементу управляемой последовательности, который должен быть непуст. Вы используете его для чтения или записи первого элемента, когда вы знаете, что он существует.
Пример
// cliext_vector_front_item.cpp
// compile with: /clr
#include <cliext/vector>
int main()
{
cliext::vector<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display initial contents " a b c"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// inspect first item
System::Console::WriteLine("front_item = {0}", c1.front_item);
// alter first item and reinspect
c1.front_item = L'x';
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
a b c
front_item = a
x b c
vector::generic_container (STL/CLR)
Тип универсального интерфейса для контейнера.
Синтаксис
typedef Microsoft::VisualC::StlClr::
IVector<generic_value>
generic_container;
Замечания
Тип описывает универсальный интерфейс для этого класса контейнера шаблона.
Пример
// cliext_vector_generic_container.cpp
// compile with: /clr
#include <cliext/vector>
int main()
{
cliext::vector<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display contents " a b c"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// construct a generic container
cliext::vector<wchar_t>::generic_container^ gc1 = %c1;
for each (wchar_t elem in gc1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// modify generic and display original
gc1->insert(gc1->end(), L'd');
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// modify original and display generic
c1.push_back(L'e');
System::Collections::IEnumerator^ enum1 =
gc1->GetEnumerator();
while (enum1->MoveNext())
System::Console::Write("{0} ", enum1->Current);
System::Console::WriteLine();
return (0);
}
a b c
a b c
a b c d
a b c d e
vector::generic_iterator (STL/CLR)
Тип итератора для использования с универсальным интерфейсом для контейнера.
Синтаксис
typedef Microsoft::VisualC::StlClr::Generic::
ContainerRandomAccessIterator<generic_value>
generic_iterator;
Замечания
Тип описывает универсальный итератор, который можно использовать с универсальным интерфейсом для этого класса контейнеров шаблона.
Пример
// cliext_vector_generic_iterator.cpp
// compile with: /clr
#include <cliext/vector>
int main()
{
cliext::vector<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display contents " a b c"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// construct a generic container
cliext::vector<wchar_t>::generic_container^ gc1 = %c1;
for each (wchar_t elem in gc1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// modify generic and display original
cliext::vector<wchar_t>::generic_iterator gcit = gc1->begin();
cliext::vector<wchar_t>::generic_value gcval = *gcit;
*++gcit = gcval;
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
a b c
a b c
a a c
vector::generic_reverse_iterator (STL/CLR)
Тип обратного итератора для использования с универсальным интерфейсом для контейнера.
Синтаксис
typedef Microsoft::VisualC::StlClr::Generic::
ReverseRandomAccessIterator<generic_value> generic_reverse_iterator;
Замечания
Тип описывает универсальный обратный итератор, который можно использовать с универсальным интерфейсом для этого класса контейнеров шаблона.
Пример
// cliext_vector_generic_reverse_iterator.cpp
// compile with: /clr
#include <cliext/vector>
int main()
{
cliext::vector<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display contents " a b c"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// construct a generic container
cliext::vector<wchar_t>::generic_container^ gc1 = %c1;
for each (wchar_t elem in gc1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// modify generic and display original
cliext::vector<wchar_t>::generic_reverse_iterator gcit = gc1->rbegin();
cliext::vector<wchar_t>::generic_value gcval = *gcit;
*++gcit = gcval;
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
a b c
a b c
a c c
vector::generic_value (STL/CLR)
Тип элемента для использования с универсальным интерфейсом для контейнера.
Синтаксис
typedef GValue generic_value;
Замечания
Тип описывает объект типа GValue
, описывающий значение хранимого элемента для использования с универсальным интерфейсом для этого класса контейнера шаблона.
Пример
// cliext_vector_generic_value.cpp
// compile with: /clr
#include <cliext/vector>
int main()
{
cliext::vector<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display contents " a b c"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// construct a generic container
cliext::vector<wchar_t>::generic_container^ gc1 = %c1;
for each (wchar_t elem in gc1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// modify generic and display original
cliext::vector<wchar_t>::generic_iterator gcit = gc1->begin();
cliext::vector<wchar_t>::generic_value gcval = *gcit;
*++gcit = gcval;
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
a b c
a b c
a a c
vector::insert (STL/CLR)
Добавляет элементы по указанной позиции.
Синтаксис
iterator insert(iterator where, value_type val);
void insert(iterator where, size_type count, value_type val);
template<typename InIt>
void insert(iterator where, InIt first, InIt last);
void insert(iterator where,
System::Collections::Generic::IEnumerable<Value>^ right);
Параметры
count
Число элементов для вставки.
first
Начало диапазона для вставки.
last
Конец диапазона для вставки.
right
Перечисление для вставки.
Val
Значение элемента для вставки.
where
Где в контейнере необходимо вставить раньше.
Замечания
Каждая из функций-членов вставляется перед элементом, указывающим на то, где в управляемой последовательности, последовательность, указанная остальными операндами.
Первая функция-член вставляет элемент со значением val и возвращает итератор, указывающий только что вставленный элемент. Он используется для вставки одного элемента перед местом, указанным итератором.
Вторая функция-член вставляет повторение элементов счетчика значений. Он используется для вставки нулевых или более смежных элементов, которые являются всеми копиями одного значения.
Если InIt
имеет целочисленный тип, первая функция-член ведет себя так же, как insert(where, (size_type)first, (value_type)last)
. В противном случае он вставляет последовательность [first
, last
). Он используется для вставки нуля или нескольких смежных элементов, скопированных из другой последовательности.
Четвертая функция-член вставляет последовательность, указанную справа. Он используется для вставки последовательности, описанной перечислителем.
При вставке одного элемента число копий элементов линейно в количестве элементов между точкой вставки и более близким концом последовательности. (При вставке одного или нескольких элементов в любом конце последовательности не происходит никаких копий элементов.) Если InIt
является входным итератором, третья функция-член фактически выполняет одну вставку для каждого элемента в последовательности. В противном случае при вставке N
элементов число копий элементов является линейным N
, а также число элементов между точкой вставки и более близким концом последовательности.
Пример
// cliext_vector_insert.cpp
// compile with: /clr
#include <cliext/vector>
int main()
{
cliext::vector<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display initial contents " a b c"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// insert a single value using iterator
cliext::vector<wchar_t>::iterator it = c1.begin();
System::Console::WriteLine("insert(begin()+1, L'x') = {0}",
*c1.insert(++it, L'x'));
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// insert a repetition of values
cliext::vector<wchar_t> c2;
c2.insert(c2.begin(), 2, L'y');
for each (wchar_t elem in c2)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// insert an iterator range
it = c1.end();
c2.insert(c2.end(), c1.begin(), --it);
for each (wchar_t elem in c2)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// insert an enumeration
c2.insert(c2.begin(), // NOTE: cast is not needed
(System::Collections::Generic::IEnumerable<wchar_t>^)%c1);
for each (wchar_t elem in c2)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
a b c
insert(begin()+1, L'x') = x
a x b c
y y
y y a x b
a x b c y y a x b
vector::iterator (STL/CLR)
Тип итератора для управляемой последовательности.
Синтаксис
typedef T1 iterator;
Замечания
Тип описывает объект неопределенного типа T1
, который может служить итератором случайного доступа для управляемой последовательности.
Пример
// cliext_vector_iterator.cpp
// compile with: /clr
#include <cliext/vector>
int main()
{
cliext::vector<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display contents " a b c"
cliext::vector<wchar_t>::iterator it = c1.begin();
for (; it != c1.end(); ++it)
System::Console::Write("{0} ", *it);
System::Console::WriteLine();
// alter first element and redisplay
it = c1.begin();
*it = L'x';
for (; it != c1.end(); ++it)
System::Console::Write("{0} ", *it);
System::Console::WriteLine();
return (0);
}
a b c
x b c
vector::operator= (STL/CLR)
Заменяет управляемую последовательность.
Синтаксис
vector<Value>% operator=(vector<Value>% right);
Параметры
right
Контейнер для копирования.
Замечания
Оператор-член копирует право на объект, а затем возвращает .*this
Он используется для замены управляемой последовательности копией управляемой последовательности справа.
Пример
// cliext_vector_operator_as.cpp
// compile with: /clr
#include <cliext/vector>
int main()
{
cliext::vector<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// 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
cliext::vector<wchar_t> 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
vector::operator(STL/CLR)
Обращается к элементу в указанной позиции.
Синтаксис
reference operator[](size_type pos);
Параметры
pos
Позиция элемента, к которому осуществляется доступ.
Замечания
Оператор-член возвращает ссылку на элемент в позиции pos. Вы используете его для доступа к элементу, позиция которого вы знаете.
Пример
// cliext_vector_operator_sub.cpp
// compile with: /clr
#include <cliext/vector>
int main()
{
cliext::vector<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display contents " a b c" using subscripting
for (int i = 0; i < c1.size(); ++i)
System::Console::Write("{0} ", c1[i]);
System::Console::WriteLine();
// change an entry and redisplay
c1[1] = L'x';
for (int i = 0; i < c1.size(); ++i)
System::Console::Write("{0} ", c1[i]);
System::Console::WriteLine();
return (0);
}
a b c
a x c
vector::pop_back (STL/CLR)
Удаляет последний элемент.
Синтаксис
void pop_back();
Замечания
Функция-член удаляет последний элемент управляемой последовательности, который должен быть непуст. Он используется для сокращения вектора на один элемент в задней части.
Пример
// cliext_vector_pop_back.cpp
// compile with: /clr
#include <cliext/vector>
int main()
{
cliext::vector<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display contents " a b c"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// pop an element and redisplay
c1.pop_back();
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
a b c
a b
vector::push_back (STL/CLR)
Добавляет новый последний элемент.
Синтаксис
void push_back(value_type val);
Замечания
Функция-член вставляет элемент со значением val
в конце управляемой последовательности. Он используется для добавления другого элемента в вектор.
Пример
// cliext_vector_push_back.cpp
// compile with: /clr
#include <cliext/vector>
int main()
{
cliext::vector<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display contents " a b c"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
a b c
vector::rbegin (STL/CLR)
Задает начало обратной управляемой последовательности.
Синтаксис
reverse_iterator rbegin();
Замечания
Функция-член возвращает обратный итератор, указывающий последний элемент управляемой последовательности или только за началом пустой последовательности. Следовательно, он обозначает beginning
обратную последовательность. Он используется для получения итератора, обозначающего current
начало управляемой последовательности, отображаемой в обратном порядке, но его состояние может измениться, если длина управляемой последовательности изменяется.
Пример
// cliext_vector_rbegin.cpp
// compile with: /clr
#include <cliext/vector>
int main()
{
cliext::vector<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// 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 in reversed sequence
cliext::vector<wchar_t>::reverse_iterator rit = c1.rbegin();
System::Console::WriteLine("*rbegin() = {0}", *rit);
System::Console::WriteLine("*++rbegin() = {0}", *++rit);
// alter first two items and reinspect
*--rit = L'x';
*++rit = L'y';
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
a b c
*rbegin() = c
*++rbegin() = b
a y x
vector::reference (STL/CLR)
Тип ссылки на элемент.
Синтаксис
typedef value_type% reference;
Замечания
Тип описывает ссылку на элемент.
Пример
// cliext_vector_reference.cpp
// compile with: /clr
#include <cliext/vector>
int main()
{
cliext::vector<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display initial contents " a b c"
cliext::vector<wchar_t>::iterator it = c1.begin();
for (; it != c1.end(); ++it)
{ // get a reference to an element
cliext::vector<wchar_t>::reference ref = *it;
System::Console::Write("{0} ", ref);
}
System::Console::WriteLine();
// modify contents " a b c"
for (it = c1.begin(); it != c1.end(); ++it)
{ // get a reference to an element
cliext::vector<wchar_t>::reference ref = *it;
ref += (wchar_t)(L'A' - L'a');
System::Console::Write("{0} ", ref);
}
System::Console::WriteLine();
return (0);
}
a b c
A B C
vector::rend (STL/CLR)
Задает конец обратной управляемой последовательности.
Синтаксис
reverse_iterator rend();
Замечания
Функция-член возвращает обратный итератор, указывающий только за начало управляемой последовательности. Следовательно, он обозначает end
обратную последовательность. Он используется для получения итератора, который обозначает current
конец управляемой последовательности, наблюдаемой в обратном порядке, но его состояние может измениться, если длина управляемой последовательности изменяется.
Пример
// cliext_vector_rend.cpp
// compile with: /clr
#include <cliext/vector>
int main()
{
cliext::vector<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// 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
cliext::vector<wchar_t>::reverse_iterator rit = c1.rend();
--rit;
System::Console::WriteLine("*-- --rend() = {0}", *--rit);
System::Console::WriteLine("*--rend() = {0}", *++rit);
// alter first two items and reinspect
*--rit = L'x';
*++rit = L'y';
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
a b c
*-- --rend() = b
*--rend() = a
y x c
vector::reserve (STL/CLR)
Обеспечивает минимальную емкость роста для контейнера.
Синтаксис
void reserve(size_type count);
Параметры
count
Новая минимальная емкость контейнера.
Замечания
Функция-член гарантирует, что capacity()
отсюда возвращается по крайней мере количество. Он используется для обеспечения того, чтобы контейнер не должен перераспределировать хранилище для управляемой последовательности, пока он не вырос до указанного размера.
Пример
// cliext_vector_reserve.cpp
// compile with: /clr
#include <cliext/vector>
int main()
{
cliext::vector<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display initial contents " a b c"
for (int i = 0; i < c1.size(); ++i)
System::Console::Write("{0} ", c1.at(i));
System::Console::WriteLine();
// increase capacity
cliext::vector<wchar_t>::size_type cap = c1.capacity();
System::Console::WriteLine("capacity() = {0}, ok = {1}",
cap, c1.size() <= cap);
c1.reserve(cap + 5);
System::Console::WriteLine("capacity() = {0}, ok = {1}",
c1.capacity(), cap + 5 <= c1.capacity());
return (0);
}
a b c
capacity() = 4, ok = True
capacity() = 9, ok = True
vector::resize (STL/CLR)
Изменяет количество элементов.
Синтаксис
void resize(size_type new_size);
void resize(size_type new_size, value_type val);
Параметры
new_size
Новый размер управляемой последовательности.
Val
Значение элемента заполнения.
Замечания
Функции-члены обе гарантируют, что вектор::size (STL/CLR)()
возвращается new_size. Если она должна сделать управляемой последовательности длиннее, первая функция-член добавляет элементы со значениемvalue_type()
, а вторая функция-член добавляет элементы со значением val. Чтобы сделать управляемой последовательности короче, обе функции-члены эффективно очищают время последнего элемента vector::size (STL/CLR).() -
new_size
Вы используете его для обеспечения того, чтобы у управляемой последовательности был размер new_size, обрезая или заполняя текущую контролируемую последовательность.
Пример
// cliext_vector_resize.cpp
// compile with: /clr
#include <cliext/vector>
int main()
{
// construct an empty container and pad with default values
cliext::vector<wchar_t> c1;
System::Console::WriteLine("size() = {0}", c1.size());
c1.resize(4);
for each (wchar_t elem in c1)
System::Console::Write("{0} ", (int)elem);
System::Console::WriteLine();
// resize to empty
c1.resize(0);
System::Console::WriteLine("size() = {0}", c1.size());
// resize and pad
c1.resize(5, L'x');
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
size() = 0
0 0 0 0
size() = 0
x x x x x
vector::reverse_iterator (STL/CLR)
Тип обратного итератора для управляемой последовательности.
Синтаксис
typedef T3 reverse_iterator;
Замечания
Тип описывает объект неопределенного типа T3
, который может служить обратным итератором для управляемой последовательности.
Пример
// cliext_vector_reverse_iterator.cpp
// compile with: /clr
#include <cliext/vector>
int main()
{
cliext::vector<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display contents " a b c" reversed
cliext::vector<wchar_t>::reverse_iterator rit = c1.rbegin();
for (; rit != c1.rend(); ++rit)
System::Console::Write("{0} ", *rit);
System::Console::WriteLine();
// alter first element and redisplay
rit = c1.rbegin();
*rit = L'x';
for (; rit != c1.rend(); ++rit)
System::Console::Write("{0} ", *rit);
System::Console::WriteLine();
return (0);
}
c b a
x b a
vector::size (STL/CLR)
Подсчитывает количество элементов.
Синтаксис
size_type size();
Замечания
Функция-член возвращает длину управляемой последовательности. Он используется для определения количества элементов в текущей управляемой последовательности. Если все, что вам нужно, заключается в том, имеет ли последовательность ненулевое значение, см . вектор::empty (STL/CLR)()
.
Пример
// cliext_vector_size.cpp
// compile with: /clr
#include <cliext/vector>
int main()
{
cliext::vector<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display initial contents " a b c"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
System::Console::WriteLine("size() = {0} starting with 3", c1.size());
// clear the container and reinspect
c1.clear();
System::Console::WriteLine("size() = {0} after clearing", c1.size());
// add elements and clear again
c1.push_back(L'a');
c1.push_back(L'b');
System::Console::WriteLine("size() = {0} after adding 2", c1.size());
return (0);
}
a b c
size() = 3 starting with 3
size() = 0 after clearing
size() = 2 after adding 2
vector::size_type (STL/CLR)
Тип расстояния со знаком между двумя элементами.
Синтаксис
typedef int size_type;
Замечания
Тип описывает число элементов, не являющихся отрицательными.
Пример
// cliext_vector_size_type.cpp
// compile with: /clr
#include <cliext/vector>
int main()
{
cliext::vector<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display initial contents " a b c"
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// compute positive difference
cliext::vector<wchar_t>::size_type diff = c1.end() - c1.begin();
System::Console::WriteLine("end()-begin() = {0}", diff);
return (0);
}
a b c
end()-begin() = 3
vector::swap (STL/CLR)
Меняет местами содержимое двух контейнеров.
Синтаксис
void swap(vector<Value>% right);
Параметры
right
Контейнер для обмена содержимым.
Замечания
Функция-член переключает управляемые последовательности между *this
и справа. Он делает это в постоянном времени, и он не вызывает исключений. Вы используете его в качестве быстрого способа обмена содержимым двух контейнеров.
Пример
// cliext_vector_swap.cpp
// compile with: /clr
#include <cliext/vector>
int main()
{
cliext::vector<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// 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::vector<wchar_t> c2(5, L'x');
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
vector::to_array (STL/CLR)
Копирует контролируемую последовательность в новый массив.
Синтаксис
cli::array<Value>^ to_array();
Замечания
Функция-член возвращает массив, содержащий контролируемую последовательность. Он используется для получения копии управляемой последовательности в форме массива.
Пример
// cliext_vector_to_array.cpp
// compile with: /clr
#include <cliext/vector>
int main()
{
cliext::vector<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// copy the container and modify it
cli::array<wchar_t>^ a1 = c1.to_array();
c1.push_back(L'd');
for each (wchar_t elem in c1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// display the earlier array copy
for each (wchar_t elem in a1)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
a b c d
a b c
vector::value_type (STL/CLR)
Тип элемента.
Синтаксис
typedef Value value_type;
Замечания
Тип является синонимом значения параметра шаблона.
Пример
// cliext_vector_value_type.cpp
// compile with: /clr
#include <cliext/vector>
int main()
{
cliext::vector<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// display contents " a b c" using value_type
for (cliext::vector<wchar_t>::iterator it = c1.begin();
it != c1.end(); ++it)
{ // store element in value_type object
cliext::vector<wchar_t>::value_type val = *it;
System::Console::Write("{0} ", val);
}
System::Console::WriteLine();
return (0);
}
a b c
vector::vector (STL/CLR)
Создает объект контейнера.
Синтаксис
vector();
vector(vector<Value>% right);
vector(vector<Value>^ right);
explicit vector(size_type count);
vector(size_type count, value_type val);
template<typename InIt>
vector(InIt first, InIt last);
vector(System::Collections::Generic::IEnumerable<Value>^ right);
Параметры
count
Число элементов для вставки.
first
Начало диапазона для вставки.
last
Конец диапазона для вставки.
right
Объект или диапазон для вставки.
Val
Значение элемента для вставки.
Замечания
Конструктор:
vector();
инициализирует управляемую последовательность без элементов. Он используется для указания пустой управляемой последовательности.
Конструктор:
vector(vector<Value>% right);
инициализирует управляемую последовательность с помощью последовательности [right.begin()
, right.end()
). Он используется для указания начальной управляемой последовательности, которая является копией последовательности, управляемой векторным объектом справа.
Конструктор:
vector(vector<Value>^ right);
инициализирует управляемую последовательность с помощью последовательности [right->begin()
, right->end()
). Он используется для указания начальной управляемой последовательности, которая является копией последовательности, управляемой объектом вектора, дескриптор которого прав.
Конструктор:
explicit vector(size_type count);
инициализирует контролируемую последовательность с элементами подсчета каждого с значением value_type()
. Он используется для заполнения контейнера элементами, имеющими значение по умолчанию.
Конструктор:
vector(size_type count, value_type val);
инициализирует контролируемую последовательность с элементами подсчета значений. Он используется для заполнения контейнера элементами с одинаковым значением.
Конструктор:
template<typename InIt>
vector(InIt first, InIt last);
инициализирует управляемую последовательность с помощью последовательности [first
, last
). Он используется для создания управляемой последовательности копии другой последовательности.
Конструктор:
vector(System::Collections::Generic::IEnumerable<Value>^ right);
инициализирует контролируемую последовательность с последовательностью, назначенной перечислителем справа. Он используется для создания управляемой последовательности копии другой последовательности, описанной перечислителем.
Пример
// cliext_vector_construct.cpp
// compile with: /clr
#include <cliext/vector>
int main()
{
// construct an empty container
cliext::vector<wchar_t> c1;
System::Console::WriteLine("size() = {0}", c1.size());
// construct with a repetition of default values
cliext::vector<wchar_t> c2(3);
for each (wchar_t elem in c2)
System::Console::Write("{0} ", (int)elem);
System::Console::WriteLine();
// construct with a repetition of values
cliext::vector<wchar_t> c3(6, L'x');
for each (wchar_t elem in c3)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// construct with an iterator range
cliext::vector<wchar_t>::iterator it = c3.end();
cliext::vector<wchar_t> c4(c3.begin(), --it);
for each (wchar_t elem in c4)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// construct with an enumeration
cliext::vector<wchar_t> c5( // NOTE: cast is not needed
(System::Collections::Generic::IEnumerable<wchar_t>^)%c3);
for each (wchar_t elem in c5)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// construct by copying another container
cliext::vector<wchar_t> c7(c3);
for each (wchar_t elem in c7)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
// construct by copying a container handle
cliext::vector<wchar_t> c8(%c3);
for each (wchar_t elem in c8)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
return (0);
}
size() = 0
0 0 0
x x x x x x
x x x x x
x x x x x x
x x x x x x
x x x x x x
operator!= (vector) (STL/CLR)
Сравнение вектора не равно.
Синтаксис
template<typename Value>
bool operator!=(vector<Value>% left,
vector<Value>% right);
Параметры
left
Левый контейнер для сравнения.
right
Правый контейнер для сравнения.
Замечания
Функция оператора возвращает .!(left == right)
Он используется для проверки того, не упорядочен ли левый порядок вправо , если два вектора сравниваются по элементу.
Пример
// cliext_vector_operator_ne.cpp
// compile with: /clr
#include <cliext/vector>
int main()
{
cliext::vector<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// 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
cliext::vector<wchar_t> c2;
c2.push_back(L'a');
c2.push_back(L'b');
c2.push_back(L'd');
// display contents " a b d"
for each (wchar_t elem in c2)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
System::Console::WriteLine("[a b c] != [a b c] is {0}",
c1 != c1);
System::Console::WriteLine("[a b c] != [a b d] is {0}",
c1 != c2);
return (0);
}
a b c
a b d
[a b c] != [a b c] is False
[a b c] != [a b d] is True
operator<
(вектор) (STL/CLR)
Вектор меньше сравнения.
Синтаксис
template<typename Value>
bool operator<(vector<Value>% left,
vector<Value>% right);
Параметры
left
Левый контейнер для сравнения.
right
Правый контейнер для сравнения.
Замечания
Функция оператора возвращает значение true, если для наименьшей позиции i
, для которой !(right[i] < left[i])
она также имеет значение true left[i] < right[i]
. В противном случае возвращается значение left->size() < right->size()
"Вы используете", чтобы проверить, упорядочивается ли слева справа, когда два вектора сравниваются по элементу.
Пример
// cliext_vector_operator_lt.cpp
// compile with: /clr
#include <cliext/vector>
int main()
{
cliext::vector<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// 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
cliext::vector<wchar_t> c2;
c2.push_back(L'a');
c2.push_back(L'b');
c2.push_back(L'd');
// display contents " a b d"
for each (wchar_t elem in c2)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
System::Console::WriteLine("[a b c] < [a b c] is {0}",
c1 < c1);
System::Console::WriteLine("[a b c] < [a b d] is {0}",
c1 < c2);
return (0);
}
a b c
a b d
[a b c] < [a b c] is False
[a b c] < [a b d] is True
operator<=
(вектор) (STL/CLR)
Вектор меньше или равного сравнения.
Синтаксис
template<typename Value>
bool operator<=(vector<Value>% left,
vector<Value>% right);
Параметры
left
Левый контейнер для сравнения.
right
Правый контейнер для сравнения.
Замечания
Функция оператора возвращает .!(right < left)
Он используется для проверки того, не упорядочен ли левый не упорядочен сразу после сравнения двух векторов по элементу.
Пример
// cliext_vector_operator_le.cpp
// compile with: /clr
#include <cliext/vector>
int main()
{
cliext::vector<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// 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
cliext::vector<wchar_t> c2;
c2.push_back(L'a');
c2.push_back(L'b');
c2.push_back(L'd');
// display contents " a b d"
for each (wchar_t elem in c2)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
System::Console::WriteLine("[a b c] <= [a b c] is {0}",
c1 <= c1);
System::Console::WriteLine("[a b d] <= [a b c] is {0}",
c2 <= c1);
return (0);
}
a b c
a b d
[a b c] <= [a b c] is True
[a b d] <= [a b c] is False
operator== (vector) (STL/CLR)
Сравнение равных векторов.
Синтаксис
template<typename Value>
bool operator==(vector<Value>% left,
vector<Value>% right);
Параметры
left
Левый контейнер для сравнения.
right
Правый контейнер для сравнения.
Замечания
Функция оператора возвращает значение true, только если последовательности, контролируемые левой и правой, имеют одинаковую длину и для каждой позиции. left[i] ==
right[i]
i
Он используется для проверки того, упорядочен ли левый порядок вправо, если два вектора сравниваются по элементу.
Пример
// cliext_vector_operator_eq.cpp
// compile with: /clr
#include <cliext/vector>
int main()
{
cliext::vector<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// 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
cliext::vector<wchar_t> c2;
c2.push_back(L'a');
c2.push_back(L'b');
c2.push_back(L'd');
// display contents " a b d"
for each (wchar_t elem in c2)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
System::Console::WriteLine("[a b c] == [a b c] is {0}",
c1 == c1);
System::Console::WriteLine("[a b c] == [a b d] is {0}",
c1 == c2);
return (0);
}
a b c
a b d
[a b c] == [a b c] is True
[a b c] == [a b d] is False
operator>
(вектор) (STL/CLR)
Вектор больше сравнения.
Синтаксис
template<typename Value>
bool operator>(vector<Value>% left,
vector<Value>% right);
Параметры
left
Левый контейнер для сравнения.
right
Правый контейнер для сравнения.
Замечания
Функция оператора возвращает .right
<
left
Он используется для проверки того, упорядочивается ли левая по правому краю, когда два вектора сравниваются по элементу.
Пример
// cliext_vector_operator_gt.cpp
// compile with: /clr
#include <cliext/vector>
int main()
{
cliext::vector<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// 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
cliext::vector<wchar_t> c2;
c2.push_back(L'a');
c2.push_back(L'b');
c2.push_back(L'd');
// display contents " a b d"
for each (wchar_t elem in c2)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
System::Console::WriteLine("[a b c] > [a b c] is {0}",
c1 > c1);
System::Console::WriteLine("[a b d] > [a b c] is {0}",
c2 > c1);
return (0);
}
a b c
a b d
[a b c] > [a b c] is False
[a b d] > [a b c] is True
operator>=
(вектор) (STL/CLR)
Вектор больше или равного сравнения.
Синтаксис
template<typename Value>
bool operator>=(vector<Value>% left,
vector<Value>% right);
Параметры
left
Левый контейнер для сравнения.
right
Правый контейнер для сравнения.
Замечания
Функция оператора возвращает .!(left < right)
Он используется для проверки того, не упорядочен ли левый слева перед правом , если два вектора сравниваются по элементу.
Пример
// cliext_vector_operator_ge.cpp
// compile with: /clr
#include <cliext/vector>
int main()
{
cliext::vector<wchar_t> c1;
c1.push_back(L'a');
c1.push_back(L'b');
c1.push_back(L'c');
// 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
cliext::vector<wchar_t> c2;
c2.push_back(L'a');
c2.push_back(L'b');
c2.push_back(L'd');
// display contents " a b d"
for each (wchar_t elem in c2)
System::Console::Write("{0} ", elem);
System::Console::WriteLine();
System::Console::WriteLine("[a b c] >= [a b c] is {0}",
c1 >= c1);
System::Console::WriteLine("[a b c] >= [a b d] is {0}",
c1 >= c2);
return (0);
}
a b c
a b d
[a b c] >= [a b c] is True
[a b c] >= [a b d] is False