Студопедия

КАТЕГОРИИ:

АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция

Функция vector:: get_allocator()




Возвращает копию объекта, который используется классом вектор для распределения памяти.

Allocator get_allocator( ) const;

Возвращаемое значение

Распределитель памяти, используемый вектором.

Замечания

Распределитель памяти по умолчанию применим для решения большинства задач, но вместе с тем Вы можете разработать и использовать свой собственный распределитель памяти.

Пример

#include <vector>

#include <iostream>

 

int main( )

{

using namespace std;

// В следующих строках объявляются объекты, которые использует распределитель

// памяти по умолчанию

vector<int> v1;

vector<int, allocator<int> > v2 = vector<int, allocator<int> >(allocator<int>( ));

 

// v3 будет использовать тот же распределитель, что и v1

vector <int> v3( v1.get_allocator( ) );

 

vector<int>::allocator_type xvec = v3.get_allocator( );

// Здесь можно вызывать функции распределителя памяти

}

Функция vector:: insert()

Вставляет один или несколько элементов вектора, начиная с указанной позиции.

iterator insert( iterator _Where, const Type& _Val );void insert( iterator _Where, size_type _Count, const Type& _Val );template<class InputIterator> void insert(iterator _Where,InputIterator _First,InputIterator _Last);

Параметр

_Where

Позиция вектора, куда вставляется первый элемент

_Val

Значение элемента, который вставляется в вектор

_Count

Количество вставляемых элементов

_First

Позиция первого элемента диапазона копируемых элементов

_Last

Позиция первого элемента, следующего за границей диапазона копируемых элементов

Возвращаемое значение

Итератор, указывающий на позицию, куда новый элемент был вставлен

Замечания

Любая операция вставки может быть дорогостоящей

Пример

#include <vector>

#include <iostream>

 

int main( )

{

using namespace std;  

vector <int> v1;

vector <int>::iterator Iter;

  

v1.push_back( 10 );

v1.push_back( 20 );

v1.push_back( 30 );

 

cout << "v1 =" ;

for ( Iter = v1.begin( ) ; Iter != v1.end( ) ; Iter++ ) cout << " " << *Iter;

cout << endl;

 

v1.insert( v1.begin( ) + 1, 40 );

cout << "v1 =";

for ( Iter = v1.begin( ) ; Iter != v1.end( ) ; Iter++ ) cout << " " << *Iter;

cout << endl;

 

v1.insert( v1.begin( ) + 2, 4, 50 );

cout << "v1 =";

for ( Iter = v1.begin( ) ; Iter != v1.end( ) ; Iter++ ) cout << " " << *Iter;

cout << endl;

 

v1.insert( v1.begin( )+1, v1.begin( )+2, v1.begin( )+4 );

cout << "v1 =";

for (Iter = v1.begin( ); Iter != v1.end( ); Iter++ ) cout << " " << *Iter;

cout << endl;

}

Вывод программы

v1 = 10 20 30v1 = 10 40 20 30v1 = 10 40 50 50 50 50 20 30v1 = 10 50 50 40 50 50 50 50 20 30

Функция vector::max_size()

Возвращает максимально возможное число элементов вектора

size_type max_size( ) const;

Пример

#include <vector>

#include <iostream>

 

int main( )

{

using namespace std;  

vector <int> v1;

vector <int>::size_type i;

 

i = v1.max_size( );  

cout << "The maximum possible length of the vector is " << i << "." << endl;

}

Вывод программы

The maximum possible length of the vector is 1073741823.

 

Функция vector::pop_back()

Удаляет последний элемент вектора, который не должен быть пустым

void pop_back( );

Пример

#include <vector>

#include <iostream>

 

int main( )

{

using namespace std;  

vector <int> v1;

  

v1.push_back( 1 );

cout << v1.back( ) << endl;

v1.push_back( 2 );

cout << v1.back( ) << endl;

v1.pop_back( );

cout << v1.back( ) << endl;

}

Вывод программы

121

Функция vector::push_back()

Добавляет элемент в конец вектора

void push_back(const Type& _Val );

Параметр

_Val

Значение вставляемого элемента вектора.

Пример

#include <vector>

#include <iostream>

 

int main( )

{

using namespace std;  

vector <int> v1;

  

v1.push_back( 1 );

if ( v1.size( ) != 0 ) cout << "Last element: " << v1.back( ) << endl;

 

v1.push_back( 2 );

if ( v1.size( ) != 0 ) cout << "New last element: " << v1.back( ) << endl;

}

Вывод программы

Last element: 1New last element: 2

 

Функция vector::rbegin()

Возвращает итератор произвольного доступа, указывающий на первый элемент реверсированного вектора

reverse_iterator rbegin( );const_reverse_iterator rbegin( ) const;

Замечания

Если возвращаемое значение присваивается константному итератору, то вектор не может быть модифицирован, а в противном случае – может.

Пример

#include <vector>

#include <iostream>

 

int main( )

{

using namespace std;  

vector <int> v1;

vector <int>::iterator v1_Iter;

vector <int>::reverse_iterator v1_rIter;

  

v1.push_back( 1 );

v1.push_back( 2 );

 

v1_Iter = v1.begin( );

cout << "The first element of vector is "<< *v1_Iter << "." << endl;

 

v1_rIter = v1.rbegin( );

cout << "The first element of the reversed vector is "<< *v1_rIter << "." << endl;

}

Вывод программы

The first element of vector is 1.The first element of the reversed vector is 2.

 

 

Функция vector::rend ()

Возвращает итератор произвольного доступа, указывающий на элемент, следующий за последним элементом реверсированного вектора.

const_reverse_iterator rend( ) const;reverse_iterator rend( );

Замечания

Функция rend() применяется к реверсированному вектору так же, как end() к обычному вектору.Если возвращаемое значение присваивается константной ссылке, то вектор не может быть модифицирован, а в противном случае – может. Эта функция может использоваться для проверки того, достиг ли реверсированный итератор конца вектора. Значение, возвращаемое rend(), не должно разыменовывааться.

Пример

#include <vector>

#include <iostream>

 

int main( )

{

using namespace std;  

vector <int> v1;

vector <int>::reverse_iterator v1_rIter;

  

v1.push_back( 1 );

v1.push_back( 2 );

 

for ( v1_rIter = v1.rbegin( ) ; v1_rIter != v1.rend( ) ; v1_rIter++ )

cout << *v1_rIter << endl;

}

Вывод программы

21

Функция vector::reserve()

Резервирует минимальную длину вектора и, при необходимости, перераспределяет память для вектора.

void reserve(size_type _Count );

Параметр

_Count

Минимальная длина вектора.

Пример

#include <vector>

#include <iostream>

 

int main( )

{

using namespace std;  

vector <int> v1;

//vector <int>::iterator Iter;

 

v1.push_back( 1 );

cout << "Current capacity of v1 = "<< v1.capacity( ) << endl;

v1.reserve( 20 );

cout << "Current capacity of v1 = "<< v1.capacity( ) << endl;

}

Вывод программы

Current capacity of v1 = 1Current capacity of v1 = 20

Функция vector::resize()

Устанавливает новую длину вектора.

void resize( size_type _Newsize);void resize( size_type _Newsize, Type _Val);

Параметр

_Newsize

Новая длина вектора.

_Val

Значение, которое присваивается добавляемым элементом вектора.

Замечания

Если размер контейнера меньше чем запрашиваемый размер _Newsize, то элементы будут добавляться до тех пор, пока не будет достигнут заданный размер. Если текущий размер вектора тот же, что и _Newsize, никаких действий не выполняется. Функция size() возвращает текущий размер вектора.

Пример

#include <vector>

#include <iostream>

int main( )

{

using namespace std;  

vector <int> v1;

  

v1.push_back( 10 );

v1.push_back( 20 );

v1.push_back( 30 );

 

v1.resize( 4,40 );

cout << "The size of v1 is " << v1.size( ) << endl;

cout << "The value of the last object is " << v1.back( ) << endl;

 

v1.resize( 5 );

cout << "The size of v1 is now " << v1.size( ) << endl;

cout << "The value of the last object is now " << v1.back( ) << endl;

}

Вывод программы

The size of v1 is 4The value of the last object is 40The size of v1 is now 5The value of the last object is now 0

 

Функция vector::size()

Возвращает число элементов вектора

size_type size( ) const;

Пример

#include <vector>

#include <iostream>

 

int main( )

{

using namespace std;  

vector <int> v1;

vector <int>::size_type i;

  

v1.push_back( 1 );

i = v1.size( );

cout << "Vector length is " << i << "." << endl;

 

v1.push_back( 2 );

i = v1.size( );

cout << "Vector length is now " << i << "." << endl;

}

Вывод программы

Vector length is 1.Vector length is now 2.

 

Функция vector::swap()

Меняет местами значения двух векторов.

void swap( vector& _Right );friend void swap(vector<Type, Allocator >& _Left,             vector<Type, Allocator >& _Right);

Параметр

_Right, _Left

Векторы, элементы которых свопируются

Пример

#include <vector>

#include <iostream>

 

int main( )

{

using namespace std;  

vector <int> v1, v2;

 

v1.push_back( 1 );

v1.push_back( 2 );

v1.push_back( 3 );

 

v2.push_back( 10 );

v2.push_back( 20 );

 

cout << "The number of elements in v1 = " << v1.size( ) << endl;

cout << "The number of elements in v2 = " << v2.size( ) << endl;

cout << endl;

 

v1.swap( v2 );

 

cout << "The number of elements in v1 = " << v1.size( ) << endl;

cout << "The number of elements in v2 = " << v2.size( ) << endl;

}

Вывод программы










Последнее изменение этой страницы: 2018-04-12; просмотров: 626.

stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда...