Записки программиста
Авторский блог Михаила Лукина

vector::assign



template <class InputIterator>
void assign ( InputIterator first, InputIterator last );
void assign ( size_type n, const T& u );

Присваивает вектору содержимое. Удаляет все, что содержалось в нем до вызова функции.

Версия с итераторами копирует в вектор последовательность элементов от first (включая first) до last (не включая last).

Вторая версия копирует в вектор n элементов u.

Функция полезна, когда вектору надо присвоить содержимое, но не удается воспользоваться конструктором копирования.

 

Параметры

first
Итератор на первый элемент последовательности, содержимое которой присваивается вектору.
last
Итератор на следующий за последним элемент последовательности, содержимое которой присваивается вектору. Элемент, на который указывает last, не копируется в вектор.
n
Сколько раз скопировать элемент u в вектор. size_type - целый беззнаковый тип.
u
Значение, которое копируется в вектор n раз.

 

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

Нет.

 

Пример. Чтение целых чисел из файла.
Содержимое файла ints.txt
3 4 5

#include <iostream>
#include <fstream>
#include <vector>

using namespace std;

int main()
{
    ifstream inf("ints.txt");
    vector<int> theVector;
    theVector.assign((istream_iterator<int>(inf)), istream_iterator<int>());
    cout << "Content of file:" << endl;
    for (vector<int>::iterator iter = theVector.begin(); iter != theVector.end(); iter++) 
    { 
        cout << *iter << " "; 
    } 
    cout << endl; 
    return 0;
}

Результат:

Content of file:
3 4 5

Временная сложность

O(n), где n - число элементов, которое копируется в вектор.

 

Версия для печати

© 2010-2014. Записки программиста. Все права защищены.
Яндекс.Метрика
ВебСтолица.РУ: создай свой бесплатный сайт!  | Пожаловаться  
Движок: Amiro CMS