Вектор в языке 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 вектора.
Примеры использования этих функций:
Нашёл максимальный элемент в векторе и не пойму как вставить его в конец, вот код программы:
#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;
}
помогите пожалуйста просто надо вставить максимальный элемент в конец вектора
Как-то так можно:
#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;
}