Вектор - это динамический массив (размеры могут изменяться во время выполнения)

Вектор полезен для параллельной сортировки нескольких массивов

Например, сортировка с номерами
(вектор неограниченной длины, пары добавляем в конец вектора)
{code:title=part.cpp|borderStyle=solid}
vector<pair<int, int> > v;
int n,i;
cin >> n;
int h[n];
for(i = 0; i < n; i++)
{
cin >> h[i] ;
v.push_back(make_pair(h[i],i));
}
sort(v.begin(), v.end());
{code}
или сортировка пар
вектор фиксированной после ввода длины, пары добавляем по номеру
{code:title=part.cpp|borderStyle=solid}
int N, D;
cin >> N >> D;

vector<pair<int, int> > A(N);
for(int i = 0; i < N; i++)
cin >> A[i].first >> A[i].second;

sort(A.begin(), A.end());
{code}
Массив пар сортируется по возрастанию первого числа
а в случае равенства первого - по возрастанию второго
В случае, когда гарантируется, что все первые различны
второй массив просто параллельно передвигается,
фактически никогда не участвуя в сравнениях

В вектор можно запихнуть и четвёрки чисел,
а потом отсортировать параллельно 4 массива:
{code:title=part.cpp|borderStyle=solid}
vector<pair< pair<int,int> , pair<int,int> > > v;


int N,i,x1,y1,x2,y2;

cin >> N ;
for (i=0; i<N; i++)
{
cin >> x1 >> y1 >> x2 >> y2 ;
v.push_back(make_pair(make_pair(x1,y1),make_pair(x2,y2)));
}
sort(v.begin(),v.end());

v.size() - размер вектора (количество элементов в векторе)
{code}
Для обращения
к первому элементу вектора используем суффикс .first
ко второму - .second
первый элемент первой пары вектора v\[i\]
v\[i\].first.first

цикл обработки вектора из двух пар (четвёрки чисел)
{code:title=part.cpp|borderStyle=solid}
for (int i=0; i<v.size(); i++)
{
int x1,y1,x2,y2;
x1=v[i].first.first;
y1=v[i].first.second;
x2=v[i].second.first;
y2=v[i].second.second;
if (x0>x1 && x0<x2 && y0>y1 && y0<y2) return true;
}
{code}
binary_search(v.begin(),v.end(),i) - двоичный поиск числа i в векторе v;
\\
{code:title=primer.cpp|borderStyle=solid}
#include <bits/stdc++.h>
using namespace std;

int main()
{
vector<int> a; // создали пустой вектор типа int
a.reserve(10); // зарезервировали память под 10 элементов типа int

vector<int> b(10); // создали пустой вектор типа int
// зарезервировали память под 10 элементов типа int
// прописали их нулями
for(unsigned int i=0; i<b.size(); i++) // обработка вектора по его размеру
cout << b[i] << ' ';

vector<int> c(b); // копирование вектора (c=b)
for(unsigned int i=0; i<c.size(); i++) // обработка вектора по его размеру
cout << c[i] << ' ';

if (c == b) cout << "c=b" << endl; // проверка векторов на равенство
}
{code}\\
\\
\\