Описание тега const-iterator

Итератор C++ STL со строго доступом только для чтения.
2 ответа

Ошибка "Нет совпадения для оператора" на простой разнице итератора

Вот мой код: #include <set> #include <iostream> using namespace std; int main(){ set<int> st; st.insert(1); int x = st.find(1) - st.begin(); return 0; } я получаю error: no match for 'operator-' in 'st.std::set<_Key, _Compare, _…
21 апр '15 в 06:12
1 ответ

Противоречивые возвращаемые типы итераторов std::set

Это вторая ошибка компилятора сегодня, которая запутала меня. Так или иначе для кода ниже, gcc жалуется, что в коде есть функция, которая возвращает итератор return_iter возвращать конфликтующие типы std::_Rb_tree_iterator<const int*> а потом …
27 окт '16 в 15:17
2 ответа

Элемент Address Iterator

Наличие Vertice (класс вершин) установлен sХочу попасть в Vertice *address адрес объекта, на который ссылается set<Vertice>::iterator it, Другими словами, address = &(*it); Но возвращается error: assigning to 'Vertice *' from incompatible …
01 ноя '16 в 03:57
2 ответа

Как изменить заданный элемент?

Я хочу изменить элемент в setтак я использовал set<T>::iterator, Тем не менее, компилятор утверждает, что "элемент const". Тогда я понял, что set<T>::iterator это const_iterator... Итак, как я могу изменить элемент? Стереть, а затем вста…
07 мар '12 в 11:31
1 ответ

Функция, работающая с парой итераторов, не работает при параллельном запуске

У меня есть следующая шаблонная функция, которая принимает GameName (std::string) и пару итераторов начала / конца над коллекцией GameTime (size_t). Он перебирает диапазон и добавляет GameTime-ы вместе и возвращает кортеж из названия игры, общего иг…
01 ноя '16 в 20:02
2 ответа

C++ const_iterator не разыменовывается?

Я получаю ошибку во время выполнения при попытке использования const_iterators. Ошибка: итератор списка не разыменовывается. Я понимаю, что const_iterator нельзя разыменовать для назначения значения в списке, но я пытаюсь разыменовать итератор для д…
29 окт '13 в 18:11
2 ответа

typename в зависимой области

Ниже приведена сокращенная версия моего кода, которая дает мне ошибку компилятора. Компилятор говорит мне поставить typename перед 'std::deque::reverse_iterator', что имеет смысл. Но если я это сделаю, я получаю ошибку внизу. Что это значит? Как это…
17 окт '13 в 20:14
2 ответа

Приведение возвращенного итератора к const

У меня есть следующее for утверждение в моем коде: for (auto Iter = Target.begin(), IterEnd = std::stable_partition(Target.begin(), Target.end(), Check); Iter != IterEnd; ++Iter) { /* loop statement */ } Дело в том, что цикл не изменяет элементы кон…
29 авг '18 в 10:47
5 ответов

Функция C++ с max_element & iterator = в 3 раза медленнее

Программа, которую я разрабатываю, становится в три раза медленнее, когда я вызываю следующую функцию. Это не было бы плохо, если бы его не вызывали пару миллионов раз. double obterNormLarguraBanda(const std::vector<double>& v, int periodo…
24 фев '11 в 15:05
1 ответ

QHash не может преобразовать параметр 1 из 'class QHash<class QDomElement, class QDomElement>:: const_iterator' в '::iterator'

У меня есть qhash, определенный с парой ключ-значение как QDomElement. как указано ниже. Я пытаюсь обновить хэш с помощью const_iterator. Но при этом ниже ошибка выдается, как решить то же самое:- error C2664: 'erase' : cannot convert parameter 1 fr…
20 май '13 в 04:37
2 ответа

Техника для факторинга найти как методы?

Я ищу технику, чтобы найти факторы, как методы. Проблема в следующем. Мне нужен метод find для контейнера, который не должен изменять содержимое контейнера для поиска. Однако должна существовать как const, так и неконстантная версия, поскольку это м…
1 ответ

Определение начальной позиции итератора

Рассмотрим векторный контейнер объектов C++ с полями a и time. Мы хотим найти первый элемент в контейнере, который появляется после текущего времени (назовем его элементом N), а затем выполнить итерацию по контейнеру, начиная с первого элемента, кот…
14 окт '14 в 19:00
2 ответа

Почему компилятор позволяет отправлять ссылку на итератор в функции, которая принимает ссылку на константный итератор?

Я немного запутался с const_iterators. Например, давайте рассмотрим функцию: void functionForConstIterator(std::list&lt;int&gt; const&amp; list, std::list&lt;int&gt;::const_iterator&amp; const_iter) { const_iter = list.begin(); } Теперь я могу напис…
22 июл '16 в 11:10
6 ответов

В чем причина cbegin/cend?

Интересно, почему cbegin а также cend были введены в C++11? В каких случаях вызов этих методов отличается от константных перегрузок begin а также end?
1 ответ

C++11: стереть, используя const_iterator

Я считаю, что с C++11 erase функция большинства контейнеров (например, std::vector) принимает const_iterator в качестве параметра: iterator erase (const_iterator position); Тем не менее, мои компиляторы (GCC 4.8 и Clang 3.2, оба использующие GCC lib…
13 апр '13 в 12:40
2 ответа

Ввести объект в векторный const_iterator

Привет у меня есть функция, которая принимает std::vector&lt;T&gt;::const_iterator в качестве параметра. Вопрос: Как я могу привести отдельный объект типа T в итератор, чтобы я мог использовать его в качестве аргумента?
29 апр '15 в 17:35
3 ответа

Является ли сравнение const_iterator с итератором хорошо определенным?

Рассмотрим следующий код: #include &lt;vector&gt; #include &lt;iostream&gt; int main() { std::vector&lt;int&gt; vec{1,2,3,5}; for(auto it=vec.cbegin();it!=vec.cend();++it) { std::cout &lt;&lt; *it; // A typo: end instead of cend if(next(it)!=vec.end…
2 ответа

C++ const_iterator нет соответствующего конструктора

Я пытаюсь создать собственный вложенный класс const_iterator для моего класса списков на основе массива. вот класс class const_iterator { private: const T *p; public: const_iterator(const T *l) { p = l; } const_iterator(const_iterator &amp;ci) { p=c…
10 сен '14 в 02:14
1 ответ

Преобразование итераторов и const_iterators

Общий контекст: Я пытаюсь создать контейнер, который будет вести себя как оболочка вокруг многомерного массива заданных во время выполнения измерений - фактически базовый массив, конечно, является одномерным массивом общего размера. Основная часть з…
0 ответов

C++11: Почему это работает в одном методе, а не в другом в том же классе? Итераторы превращаются в const const_iterators?

Я пишу range_map контейнер, который хранит данные в диапазонах, позволяя вам выбрать точку и получить диапазоны, которые ее покрывают. Как правило, когда диапазон вставляется, его начальная и конечная точки должны быть покрыты одинаковыми диапазонам…