vector :: front () и vector :: back () в C ++ STL
Векторы такие же, как динамические массивы, с возможностью автоматического изменения размера при вставке или удалении элемента, а их хранение автоматически обрабатывается контейнером.
Эта функция может использоваться для выборки первого элемента векторного контейнера.
Синтаксис:
имя вектора .front () Параметры: Значение не требуется для передачи в качестве параметра. Возврат: Прямая ссылка на первый элемент векторного контейнера.
Примеры:
Ввод: myvector = 1, 2, 3 myvector.front (); Выход: 1 Ввод: myvector = 3, 4, 1, 7, 3 myvector.front (); Выход: 3
Ошибки и исключения
1. Если контейнер векторов пуст, это вызывает неопределенное поведение.
2. У него нет гарантии исключения исключения, если вектор не пуст.
// CPP program to illustrate // Implementation of front() function #include <iostream> #include <vector> using namespace std; int main() { vector< int > myvector; myvector.push_back(3); myvector.push_back(4); myvector.push_back(1); myvector.push_back(7); myvector.push_back(3); // Vector becomes 3, 4, 1, 7, 3 cout << myvector.front(); return 0; } |
Выход:
3
Эта функция может использоваться для получения последнего элемента векторного контейнера.
Синтаксис:
vectorname .back () Параметры: Значение не требуется для передачи в качестве параметра. Возврат: Прямая ссылка на последний элемент векторного контейнера.
Примеры:
Ввод: myvector = 1, 2, 3 myvector.back (); Выход: 3 Ввод: myvector = 3, 4, 1, 7, 2 myvector.back (); Выход: 2
Ошибки и исключения
1. Если контейнер векторов пуст, это вызывает неопределенное поведение.
2. У него нет гарантии исключения исключения, если вектор не пуст.
// CPP program to illustrate // Implementation of back() function #include <iostream> #include <vector> using namespace std; int main() { vector< int > myvector; myvector.push_back(3); myvector.push_back(4); myvector.push_back(1); myvector.push_back(7); myvector.push_back(2); // Vector becomes 3, 4, 1, 7, 2 cout << myvector.back(); return 0; } |
Выход:
2
Разница между функциями front (), back () и begin, end ()
Функции begin () и end () возвращают итератор (например, указатель), инициализированный первым или последним элементом контейнера, который можно использовать для итерации по коллекции, а функции front () и back () просто возвращают ссылку к первому или последнему элементу контейнера.
Применение: учитывая пустой вектор целых чисел, добавьте числа к вектору, затем распечатайте разницу между первым и последним элементом.
Ввод: 1, 2, 3, 4, 5, 6, 7, 8 Выход: 7 Пояснение - последний элемент = 8, первый элемент = 1, разница = 7
Алгоритм
1. Добавьте числа к вектору с помощью функции push_back ().
2. Сравните первый и последний элемент.
3. Если первый элемент больше, вычтите из него последний элемент и распечатайте его.
4. Иначе вычтите первый элемент из последнего и распечатайте его.
// CPP program to illustrate // application Of front() and back() function #include <iostream> #include <vector> using namespace std; int main() { vector< int > myvector; myvector.push_back(8); myvector.push_back(7); myvector.push_back(6); myvector.push_back(5); myvector.push_back(4); myvector.push_back(3); myvector.push_back(2); myvector.push_back(1); // Vectro becomes 1, 2, 3, 4, 5, 6, 7, 8 if (myvector.front() > myvector.back()) { cout << myvector.front() - myvector.back(); } else if (myvector.front() < myvector.back()) { cout << myvector.back() - myvector.front(); } else cout << "0" ; } |
Выход:
7