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

Вставка и удаление элементов вектора

Читайте также:
  1. A. Определение элементов операций в пользу мира
  2. C. Число элементов в операции
  3. Билет №21. Общая характеристика элементов IV а группы. Сопоставительная характеристика атомов, простых веществ, водородных и кислородных соединений элементов подгруппы углерода.
  4. Векторы и скаляры. Линейные действия над векторами.
  5. ВЗАИМОСВЯЗЬ ВНУТРЕННИХ ЭЛЕМЕНТОВ СИСТЕМЫ И ФАКТОРОВ ВНЕШНЕЙ СРЕДЫ
  6. Влияние параметров элементов на характеристики цепи.
  7. ВНИМАНИЕ: никакие корректировки данных в других полях, а уж тем более удаление, добавление полей и записей, изменение типа и размера полей не допускаются.
  8. ВНИМАНИЕ: При удалении возвратов из данного журнала необходимо произвести удаление соответствующих проводок из книги главной.
  9. ВНИМАНИЕ: При удалении возвратов из данного журнала необходимо произвести удаление соответствующих проводок из книги главной.
  10. Вставка звука
  11. Вставка и редактирование рисунков

Итак, мы уже знаем, как вставить новые значения в конец вектора. Теперь по­смотрим, как их записать в середину. Для этого применяется функция insert(). Удалить элементы из вектора можно с помощью функции erase(). Рассмотрим программу, иллюстрирующую применение функций insert() и erase().

 

// Иллюстрация функций insert и erase.

#include"stdafx.h"

// Доступ к элементам вектора <: помощью итератора.

#include <iostream>

#include <vector>

#include <windows.h>

#include <cctype>

using namespace std;

int main() {

vector<char> v(10);

vector<char> v2;

char str[] = "<Vector>";

unsigned int i;

// Инициализируем вектор v.

for(i=0; i<10; i++) v[i] = i + 'a';

// Копируем символы из строки str в вектор v2.

for(i=0; str[i]; i++) v2.push_back(str[i]);

// Выводим на экран исходное содержимое вектора

SetConsoleOutputCP(1251);

cout << "Исходное содержимое вектора v: \n";

for(i=0; i<v.size(); i++) cout << v[i] << " ";

cout << "\n\n";

vector<char>::iterator p = v.begin();

p += 2; //Устанавливаем итератор на третий элемент.

// Вставляем 10 символов 'X' в вектор v.

v.insert(p, 10, 'X');

// Выводим на экран содержимое вектора после вставки,

cout << "Размер вектора после вставки символов 'X' = "

<< v.size() << endl;

cout << "Содержимое вектора v после вставки: \n";

for(i=0; i<v.size(); i++) cout <<v[i] <<" ";

cout << "\n\n";

// Удаляем эти элементы.

p = v.begin();

p += 2; // Устанавливаем итератор на третий элемент.

v.erase(p, p+10); // Удаляем следующие 10 элементов.

// Выводим на экран содержимое вектора после удаления.

cout << "Размер вектора v после удаления = "<<v.size() << endl;

cout << "Содержимое вектора V после удаления:\n";

for(i=0; i<v.size(); i++) cout << v[i] << " ";

cout << "\n\n";

// Вставка вектора v2 в вектор v.

v.insert(p, v2.begin(), v2.end());

cout << " Размер вектора v после вставки вектора v2 = ";

cout << v.size() << endl;

cout << "Содержимое вектора v после вставки:\n";

for(i=0; i<v.size(); i++) cout << v[i] << " ";

cout << endl;

char z;

cin>>z;

return 0;

}

 

Эта программа выводит на экран следующие строки.

 

Эта программа демонстрирует применение двух видов функции insert(). Впервом случае она вставляет в вектор 10 символов X. Во втором — вставляет в вектор v содержимое вектора v2. Вторая форма функции insert() намного интереснее. Она имеет три арсумента, которые являются итераторами. Первый из них задает позицию, с которой начинается вставка элементов в контейнер. Следующие два аргумента зада­ют начало и конец вставляемой последовательности.

 

 


1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 |

Поиск по сайту:



Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Студалл.Орг (0.004 сек.)