vector

Вектор в языке C++ - это абстрактная модель с рядом определенных функций, позволяющих совершать различные действия, в том числе имитировать работу динамического массива.

Что бы использовать вектора в программе, необходимо подключить заголовочный файл <vector>.  Его объявление выглядит следующим образом

В этой строке <int> означает тип элементов в векторе. Все элементы вектора должны принадлежать одному типу. Число 15 означает, что в векторе задается память на 15 элементов, при этом они инициализируются. Возможна и другая запись

В ней выделяется память на 15 элементов уже без инициализации.

Работать с вектором можно как с массивом, так и с объектом. Для вектора как объекта функции таковы:

  • myV.swap(myV2) - меняет содержимое векторов местами,
  • myV.begin() - указатель на начало вектора,
  • myV.end() - указатель на конец вектора,
  • myV.rbegin() - реверсивный указатель на конец вектора,
  • myV.rend() - реверсивный указатель на начало вектора,
  • myV.clear() - очистка вектора.

Вектор также  примечателен тем, что при добавлении в него элементов больше, чем изначально задано, он изменяет свой размер и резервирует дополнительную память. Функций для такой работы с памятью вектора немного:

  • myV.size() - размер вектора,
  • myV.max_size() - максимальный размер вектора,
  • myV.reserve(n) - установить минимальный размер выделенной памяти на вектор,
  • myV.resize(n) - установить размер n для вектора,
  • myV.capacity() - количество свободной памяти, выделенной под вектор.

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

Ну и основные функции, для работы с отдельными элементами вектора:

  • myV.push_back(e) - добавить в конец элемент,
  • myV.pop_back() - удалить последний элемент,
  • myV.front() - первый элемент вектора,
  • myV.back() - последний элемент вектора,
  • myV.insert(i, e) - вставка элемента в позицию i,
  • myV.erase(myV2) - удаляет последовательность элементов,
  • myV[i] или myV.at(i) - доступ к элементу i вектора.

Примеры использования этих функций:

    Запрос услуг репетитора:

    Опубликовано

    vector: 2 комментария

    1. Нашёл максимальный элемент в векторе и не пойму как вставить его в конец, вот код программы:

      #include <vector>
      #include <iostream>
      #include <algorithm>
      using namespace std;

      void DisplayVector(const vector& vecInput){
        for (auto iElement = vecInput.cbegin(); iElement != vecInput.cend(); ++iElement)
          cout << *iElement << ' ';
        cout << endl;
      }

      int main(){
        vector vecIntegers;

        vecIntegers.push_back (1234);
        vecIntegers.push_back (53);
        vecIntegers.push_back (2453);
        vecIntegers.push_back (346);
        vecIntegers.push_back (876);

        DisplayVector(vecIntegers);

        cout << "Print the maximum element on the screen: ";
        cout << *max_element (vecIntegers.cbegin (), vecIntegers.cend ()) << endl;

        return 0;
      }

      помогите пожалуйста просто надо вставить максимальный элемент в конец вектора

      1. Как-то так можно:

        #include <vector>
        #include <iostream>
        #include <algorithm>
        using namespace std;

        void DisplayVector(const vector<int>& vecInput) {
          for (int i = 0; i < vecInput.size(); i++)
            cout << vecInput[i] << ' ';
          cout << endl;
        }

        int main() {

          vector<int> vecIntegers;

          vecIntegers.push_back (1234);
          vecIntegers.push_back (53);
          vecIntegers.push_back (2453);
          vecIntegers.push_back (346);
          vecIntegers.push_back (876);

          DisplayVector(vecIntegers);
          
          cout << "Print the maximum element on the screen: ";
          cout << *max_element (vecIntegers.begin (), vecIntegers.end ()) << endl;

          vecIntegers.push_back (*max_element (vecIntegers.begin (), vecIntegers.end ()));

          DisplayVector(vecIntegers);

          return 0;
        }

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *

    Капча загружается...