Где ошибся с функцией Insert?

139
07 июня 2019, 01:40

Задача для этой части кода: Если получаемое число меньше первого в векторе, то нужно это число вставить на первое место в векторе, а остальное сдвинуть вправо(обычная вставка в отсортированный вектор).

if (a[0]>=b) {
a.insert(0, b);
}

Но выделяет точку перед insert с данной проблемой:

Если же "insert" написать как "Insert", то будет выделение всего Insert с последующим описанием:

P.S. Вектор я создал так: vector<int> a={1,4,8,10,10,39,50,86,110,1000000};

Подключенные библиотеки:

#include "stdafx.h"
#include <iostream>
#include <stdlib.h>
#include <iomanip>
#include "vector"

Был бы рад, если мне объяснили бы ещё разницу между последовательными контейнерами, видимо vector не самый лучший выбор в данной ситуации

Answer 1

Смотрим на описание vector::insert и видим, что первым идет итератор, перед которым нужно вставлять элемент, т.е. вставка должна делаться так:

a.insert(a.begin(), b);

По поводу разных контейнеров рекомендую посмотреть этот вопрос - Контейнер deque в STL c++

READ ALSO
MS MPI неправильные данные при Send struct

MS MPI неправильные данные при Send struct

Я объявил кастомную структуру для использования в send/recv

116
Вызов деструктора для объекта в его методе

Вызов деструктора для объекта в его методе

Насколько безопасна такая вещь:

128
распознавание Aruco меток

распознавание Aruco меток

Нужно реализовать распознавание Aruco меток под наклоном по трём осямПроблема заключается в методе

103
С++ Почему ошибка при передачи указателя на двумерный массив в функцию?

С++ Почему ошибка при передачи указателя на двумерный массив в функцию?

Нужно передать в функцию указатель на двумерный массивСделал это, как было предложено в одном из ответов вот тут

128