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;
      }

Не нашли ответ? Не беда, спросите в комментариях.

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