Студопедия КАТЕГОРИИ: АвтоАвтоматизацияАрхитектураАстрономияАудитБиологияБухгалтерияВоенное делоГенетикаГеографияГеологияГосударствоДомЖурналистика и СМИИзобретательствоИностранные языкиИнформатикаИскусствоИсторияКомпьютерыКулинарияКультураЛексикологияЛитератураЛогикаМаркетингМатематикаМашиностроениеМедицинаМенеджментМеталлы и СваркаМеханикаМузыкаНаселениеОбразованиеОхрана безопасности жизниОхрана ТрудаПедагогикаПолитикаПравоПриборостроениеПрограммированиеПроизводствоПромышленностьПсихологияРадиоРегилияСвязьСоциологияСпортСтандартизацияСтроительствоТехнологииТорговляТуризмФизикаФизиологияФилософияФинансыХимияХозяйствоЦеннообразованиеЧерчениеЭкологияЭконометрикаЭкономикаЭлектроникаЮриспунденкция |
Функция 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; просмотров: 677. stydopedya.ru не претендует на авторское право материалов, которые вылажены, но предоставляет бесплатный доступ к ним. В случае нарушения авторского права или персональных данных напишите сюда... |