void push_back(const value_type& val);
void pop_back();
clear функция да std::vector контейнеризодининдивидуальныйчленфункция , Используется для удаления элемента контейнерасерединаиз всех. , и освободить память, занятую элементом ;
std::vector#clear() Прототип функции следующий: :
void clear() noexcept;
Долженфункция Нет параметр и возвращаемое значение,при звонке clear функциячас,будет удалено std::vector контейнерсерединаизвсеэлемент,и сделатьконтейнериз size Переменная-член становится 0 ;
особое внимание : clear функция Не буду менять контейнериз capacity емкость ;
std::vector вызов capacity() функция , Может получить емкость , емкость относится к контейнеру, выделяющему размер пространства в памяти. , Количество элементов, которые можно разместить ; Когда количество изэлементов в контейнере превышает емкость , контейнер автоматически расширится , Выделите больше места в памяти для размещения большего количества элементов ;
пример кода : Ниже функции , вызов vector контейнериз clear функция , Очищен средний элемент контейнера , размер контейнера становится 0 ,контейнериземкостьвсе еще для 3 ;
#include "iostream"
using namespace std;
#include "vector"
// Распечатать vector<int> Тип из STL контейнер
void printV(vector<int>& v)
{
cout << "vector контейнерсерединаизэлемент : ";
for (int i = 0; i < v.size(); i++)
{
// Выходной списокэлементов
cout << v[i] << " ";
}
// Выходной возврат каретки и перевод строки
std::cout << std::endl;
cout << " vector контейнерразмер : " << v.size() << " ; контейнеремкость : " << v.capacity();
// Выходной возврат каретки и перевод строки
std::cout << std::endl;
}
int main() {
// Создать пустой из vector контейнер
std::vector<int> vec{ 1, 2, 3 };
// Распечатать vector контейнерсерединаизэлемент printV(vec);
// Прозрачныйконтейнерсерединаизэлемент vec.clear();
// Распечатать vector контейнерсерединаизэлемент printV(vec);
// Консоль приостановлена , Нажмите любую клавишу, чтобы продолжить и выполнить
system("pause");
return 0;
};
Результат выполнения:
vector контейнерсерединаизэлемент : 1 2 3 vector контейнерразмер : 3 ; контейнеремкость : 3 vector контейнерсерединаизэлемент : vector контейнерразмер : 0 ; контейнеремкость : 3 Press any key to continue . . .
iterator Класс итератора из erase функция удалить обозначение индексная позиция изэлемент ;
iterator#erase() Прототип функции следующий: :
iterator erase( const_iterator pos );
Должен erase() функция Принимает ссылку на константу «Удалитьизэлементиз» Итератор в качестве параметра. , Возвращает ссылку на Удалить элементпослеэлементиз Итератор ;
Уведомление : Возврат изда новыйиз Итератор , нуждатьсясноваиспользовать Переменный прием Должен Итератор , до Итератор обратитесь к Элемент все еще удаляется , еслииспользоватьдо Итератор Получить данные , программа выйдет из строя ;
пример кода :
#include "iostream"
using namespace std;
#include "vector"
// Распечатать vector<int> Тип из STL контейнер
void printV(vector<int>& v)
{
cout << "vector контейнерсерединаизэлемент : ";
for (int i = 0; i < v.size(); i++)
{
// Выходной списокэлементов
cout << v[i] << " ";
}
// Выходной возврат каретки и перевод строки
std::cout << std::endl;
cout << " vector контейнерразмер : " << v.size() << " ; контейнеремкость : " << v.capacity();
// Выходной возврат каретки и перевод строки
std::cout << std::endl;
}
int main() {
// Создать пустой из vector контейнер
std::vector<int> vec{ 1, 2, 3 };
// Распечатать vector контейнерсерединаизэлемент printV(vec);
// удалитьконтейнерсередина Нет.одинэлементы vec.erase(vec.begin());
// Распечатать vector контейнерсерединаизэлемент printV(vec);
// Консоль приостановлена , Нажмите любую клавишу, чтобы продолжить и выполнить
system("pause");
return 0;
};
Результат выполнения:
vector контейнерсерединаизэлемент : 1 2 3 vector контейнерразмер : 3 ; контейнеремкость : 3 vector контейнерсерединаизэлемент : 2 3 vector контейнерразмер : 2 ; контейнеремкость : 3 Press any key to continue . . .
iterator Класс итератора из erase функция удалить обозначение интервал диапазона изэлемент ;
Уведомление : Итератор объемдаа Закрыть спереди и открыть сзади интервал , из кода ниже может толькоудалить 2 элементы , Прямо сейчас Первый и второй элементы ;
// удалитьконтейнерсередина Первый и второй элементы
vec.erase(vec.begin(), vec.begin() + 2);
iterator#erase() Прототип функции следующий: :
iterator erase( const_iterator first, const_iterator last );
iterator#erase() функция Принимает две ссылки на константу «Удалитьэлементиз» Итератор в качестве параметра. , Возвращает ссылку на Удалить элементобъемиз Заканчивать Расположениепослеиз Итератор ;
Уведомление : Возврат изда новыйиз Итератор , нуждатьсясноваиспользовать Переменный прием Должен Итератор , до Итератор обратитесь к Элемент все еще удаляется , еслииспользоватьдо Итератор Получить данные , программа выйдет из строя ;
пример кода :
#include "iostream"
using namespace std;
#include "vector"
// Распечатать vector<int> Тип из STL контейнер
void printV(vector<int>& v)
{
cout << "vector контейнерсерединаизэлемент : ";
for (int i = 0; i < v.size(); i++)
{
// Выходной списокэлементов
cout << v[i] << " ";
}
// Выходной возврат каретки и перевод строки
std::cout << std::endl;
cout << " vector контейнерразмер : " << v.size() << " ; контейнеремкость : " << v.capacity();
// Выходной возврат каретки и перевод строки
std::cout << std::endl;
}
int main() {
// Создать пустой из vector контейнер
std::vector<int> vec{ 1, 2, 3 };
// Распечатать vector контейнерсерединаизэлемент printV(vec);
// удалитьконтейнерсередина Первый и второй элементы
vec.erase(vec.begin(), vec.begin() + 2);
// Распечатать vector контейнерсерединаизэлемент printV(vec);
// Консоль приостановлена , Нажмите любую клавишу, чтобы продолжить и выполнить
system("pause");
return 0;
};
Результат выполнения:
vector контейнерсерединаизэлемент : 1 2 3
vector контейнерразмер : 3 ; контейнеремкость : 3
vector контейнерсерединаизэлемент : 3
vector контейнерразмер : 1 ; контейнеремкость : 3
Press any key to continue . . .
Ниже изпример кодасередина , особое внимание , элементудалитьназад Возврат изда обратитесь к КВнизодинэлементы Расположениеиз новый Итератор ,новый Итератор нуждаться установлен на переменная управления контуром,
пример кода :
#include "iostream"
using namespace std;
#include "vector"
// Распечатать vector<int> Тип из STL контейнер
void printV(vector<int>& v)
{
cout << "vector контейнерсерединаизэлемент : ";
for (int i = 0; i < v.size(); i++)
{
// Выходной списокэлементов
cout << v[i] << " ";
}
// Выходной возврат каретки и перевод строки
std::cout << std::endl;
cout << " vector контейнерразмер : " << v.size() << " ; контейнеремкость : " << v.capacity();
// Выходной возврат каретки и перевод строки
std::cout << std::endl;
}
int main() {
// Создать пустой из vector контейнер
std::vector<int> vec{ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
// Распечатать vector контейнерсерединаизэлемент printV(vec);
// удалитьконтейнерсередина Первый и второй элементы
// здесь for В условиях цикла Не пиши it++ , it++ Доступно только при определенных условияхиспользовать
for (vector<int>::iterator it = vec.begin(); it != vec.end();)
{
if (*it % 2 == 0)
{
// элементудалитьназад Возврат изда обратитесь к КВнизодинэлементы Расположениеиз новый Итератор // здесьнуждаться Воля новый Итератор установлен переменная условия цикла
it = vec.erase(it);
}
else
{
// Итераторобратитесь к Кизэлемент Нетудалить, Затем продолжайте цикл
++it;
}
}
// Распечатать vector контейнерсерединаизэлемент printV(vec);
// Консоль приостановлена , Нажмите любую клавишу, чтобы продолжить и выполнить
system("pause");
return 0;
};
Результат выполнения:
vector контейнерсерединаизэлемент : 1 2 3 4 5 6 7 8 9 10
vector контейнерразмер : 10 ; контейнеремкость : 10
vector контейнерсерединаизэлемент : 1 3 5 7 9
vector контейнерразмер : 5 ; контейнеремкость : 10
Press any key to continue . . .
Используйте цикл while для достижения вышеуказанного эффекта:
пример кода :
#include "iostream"
using namespace std;
#include "vector"
// Распечатать vector<int> Тип из STL контейнер
void printV(vector<int>& v)
{
cout << "vector контейнерсерединаизэлемент : ";
for (int i = 0; i < v.size(); i++)
{
// Выходной списокэлементов
cout << v[i] << " ";
}
// Выходной возврат каретки и перевод строки
std::cout << std::endl;
cout << " vector контейнерразмер : " << v.size() << " ; контейнеремкость : " << v.capacity();
// Выходной возврат каретки и перевод строки
std::cout << std::endl;
}
int main() {
// Создать пустой из vector контейнер
std::vector<int> vec{ 1, 2, 3, 4, 5, 6, 7, 8, 9, 10 };
// Распечатать vector контейнерсерединаизэлемент printV(vec);
// удалитьконтейнерсерединадажеэлемент // переменная управления контуром
vector<int>::iterator it = vec.begin();
// Определить условия цикла : Итератор до конца
while (it != vec.end())
{
if (*it % 2 == 0)
{
// элементудалитьназад Возврат изда обратитесь к КВнизодинэлементы Расположениеиз новый Итератор // здесьнуждаться Воля новый Итератор установлен переменная условия цикла
it = vec.erase(it);
}
else
{
// Итераторобратитесь к Кизэлемент Нетудалить, Затем продолжайте цикл
++it;
}
}
// Распечатать vector контейнерсерединаизэлемент printV(vec);
// Консоль приостановлена , Нажмите любую клавишу, чтобы продолжить и выполнить
system("pause");
return 0;
};
Результат выполнения:
vector контейнерсерединаизэлемент : 1 2 3 4 5 6 7 8 9 10
vector контейнерразмер : 10 ; контейнеремкость : 10
vector контейнерсерединаизэлемент : 1 3 5 7 9
vector контейнерразмер : 5 ; контейнеремкость : 10
Press any key to continue . . .
void push_back(const value_type& val);
void pop_back();
вызов insert функция ,К vector контейнер обозначение Расположение вставлять одинэлементы, Долженфункция принимает ссылку на Kv создает Расположениеизконст Итераторы ссылаются на в создаетизэлемент в качестве параметра , Возвращает ссылку на Кв создает Расположение после элементаиз Итератор ;
Прототип функции следующий: :
iterator insert( const_iterator pos, const value_type& value );
Уведомление : Возврат изда новыйиз Итератор , нуждатьсясноваиспользовать Переменный прием Должен Итератор , до Итератор обратитесь к Элемент все еще удаляется , еслииспользоватьдо Итератор Получить данные , программа выйдет из строя ;
пример кода :
#include "iostream"
using namespace std;
#include "vector"
// Распечатать vector<int> Тип из STL контейнер
void printV(vector<int>& v)
{
cout << "vector контейнерсерединаизэлемент : ";
for (int i = 0; i < v.size(); i++)
{
// Выходной списокэлементов
cout << v[i] << " ";
}
// Выходной возврат каретки и перевод строки
std::cout << std::endl;
cout << " vector контейнерразмер : " << v.size() << " ; контейнеремкость : " << v.capacity();
// Выходной возврат каретки и перевод строки
std::cout << std::endl;
}
int main() {
// Создать пустой из vector контейнер
std::vector<int> vec{ 1, 2, 3, 4, 5 };
// Распечатать vector контейнерсерединаизэлемент printV(vec);
// Получите первый элемент Итератор
std::vector<int>::iterator it = vec.begin();
// К 2 индексная позициявставлять 888 элемент
vec.insert(it + 2, 888);
// Распечатать vector контейнерсерединаизэлемент printV(vec);
// Консоль приостановлена , Нажмите любую клавишу, чтобы продолжить и выполнить
system("pause");
return 0;
};
Результат выполнения:
vector контейнерсерединаизэлемент : 1 2 3 4 5
vector контейнерразмер : 5 ; контейнеремкость : 5
vector контейнерсерединаизэлемент : 1 2 888 3 4 5
vector контейнерразмер : 6 ; контейнеремкость : 7
Press any key to continue . . .
вызов insert функция , К vector контейнер обозначение Расположение вставлять несколько одинаковых элементов , Долженфункция принимает ссылку на Kv создает Расположениеизконст Итераторы ссылаются на в создаетизэлемент в качестве параметра , Возвращает ссылку на Кв создает Расположение после элементаиз Итератор ;
Прототип функции следующий: :
iterator insert( const_iterator pos, size_type n, const value_type& value );
Уведомление : Возврат изда новыйиз Итератор , нуждатьсясноваиспользовать Переменный прием Должен Итератор , до Итератор обратитесь к Элемент все еще удаляется , еслииспользоватьдо Итератор Получить данные , программа выйдет из строя ;
пример кода :
#include "iostream"
using namespace std;
#include "vector"
// Распечатать vector<int> Тип из STL контейнер
void printV(vector<int>& v)
{
cout << "vector контейнерсерединаизэлемент : ";
for (int i = 0; i < v.size(); i++)
{
// Выходной списокэлементов
cout << v[i] << " ";
}
// Выходной возврат каретки и перевод строки
std::cout << std::endl;
cout << " vector контейнерразмер : " << v.size() << " ; контейнеремкость : " << v.capacity();
// Выходной возврат каретки и перевод строки
std::cout << std::endl;
}
int main() {
// Создать пустой из vector контейнер
std::vector<int> vec{ 1, 2, 3, 4, 5 };
// Распечатать vector контейнерсерединаизэлемент printV(vec);
// Получите первый элемент Итератор
std::vector<int>::iterator it = vec.begin();
// К 2 индексная позициявставлять 3 индивидуальный 888 элемент
vec.insert(it + 2, 3, 888);
// Распечатать vector контейнерсерединаизэлемент printV(vec);
// Консоль приостановлена , Нажмите любую клавишу, чтобы продолжить и выполнить
system("pause");
return 0;
};
Результат выполнения:
vector контейнерсерединаизэлемент : 1 2 3 4 5
vector контейнерразмер : 5 ; контейнеремкость : 5
vector контейнерсерединаизэлемент : 1 2 888 888 888 3 4 5
vector контейнерразмер : 8 ; контейнеремкость : 8
Press any key to continue . . .
вызов insert функция , К vector контейнер обозначение Расположение вставлять другой vector контейнеробозначениеобъемизэлемент , Долженфункция принимает ссылку на Kv создает Расположениеизконст Итераторы ссылаются на в создаетизэлемент в качестве параметра , Возвращает ссылку на Кв создает Расположение после элементаиз Итератор ;
Прототип функции следующий: :
template< class InputIt >
iterator insert( const_iterator pos, InputIt first, InputIt last );
Уведомление : Возврат изда новыйиз Итератор , нуждатьсясноваиспользовать Переменный прием Должен Итератор , до Итератор обратитесь к Элемент все еще удаляется , еслииспользоватьдо Итератор Получить данные , программа выйдет из строя ;
пример кода :
#include "iostream"
using namespace std;
#include "vector"
// Распечатать vector<int> Тип из STL контейнер
void printV(vector<int>& v)
{
cout << "vector контейнерсерединаизэлемент : ";
for (int i = 0; i < v.size(); i++)
{
// Выходной списокэлементов
cout << v[i] << " ";
}
// Выходной возврат каретки и перевод строки
std::cout << std::endl;
cout << " vector контейнерразмер : " << v.size() << " ; контейнеремкость : " << v.capacity();
// Выходной возврат каретки и перевод строки
std::cout << std::endl;
}
int main() {
// Создать пустой из vector контейнер
std::vector<int> vec{ 1, 2, 3, 4, 5 };
std::vector<int> vec2{ 6, 7, 8, 9, 10 };
// Распечатать vector контейнерсерединаизэлемент printV(vec);
// Получите первый элемент Итератор
std::vector<int>::iterator it_begin = vec2.begin();
std::vector<int>::iterator it_end = vec2.end();
std::vector<int>::iterator it_pos = vec.begin();
// К vec контейнериз 2 индексная позициявставлять Другойодининдивидуальный vector контейнер vec2 обозначениеинтервал диапазона элемент
vec.insert(it_pos, it_begin, it_end);
// Распечатать vector контейнерсерединаизэлемент printV(vec);
// Консоль приостановлена , Нажмите любую клавишу, чтобы продолжить и выполнить
system("pause");
return 0;
};
Результат выполнения:
vector контейнерсерединаизэлемент : 1 2 3 4 5
vector контейнерразмер : 5 ; контейнеремкость : 5
vector контейнерсерединаизэлемент : 6 7 8 9 10 1 2 3 4 5
vector контейнерразмер : 10 ; контейнеремкость : 10
Press any key to continue . . .