Вопросы по теме 'const-iterator'
вернуть константный и неконстантный объект-оболочку
Если я хочу, чтобы пользовательский класс контейнера предоставлял доступ к своим данным через объект, подобный итератору (фактически действующий как оболочка для некоторых данных в контейнере), и я хочу иметь возможность получить как константный, так...
118 просмотров
schedule
06.05.2022
std::map::begin() возвращает итератор с мусором
typedef unsigned long Count;
typedef float Weight;
typedef std::map<std::string, Count> StringToCountMap;
typedef std::map<std::string, Weight> StringToWeightMap;
typedef std::map<unsigned long, StringToCountMap>...
1110 просмотров
schedule
15.05.2022
В чем разница между const_iterator с std::begin() и const_iterator с std::cbegin()?
Зачем нам cbegin , если std::vector<int>::const_iterator itr с std::begin сделают то же самое? Есть ли проблема с использованием первого цикла (UB или что-то в этом роде)? Обе петли дают тот же результат, что и ожидалось.
int main()
{...
10 просмотров
schedule
24.05.2022
Как выставить классы C++ с помощью const_iterator
Я использую Boost.Python для предоставления Сторонний API C++.
Файл заголовка, к которому я пришел, объявляет итерируемый класс (имеет методы begin и end ) и пользовательский класс итератора, с помощью которого выполняется итерация: -...
1303 просмотров
schedule
02.06.2022
Преобразование итераторов и const_iterators
Общий контекст:
Я пытаюсь создать контейнер, который будет вести себя как оболочка для многомерного массива измерений, определенных во время выполнения - на самом деле, базовый массив, конечно, является одномерным массивом общего размера. Основная...
897 просмотров
schedule
18.06.2022
С++ Невозможно преобразовать из const int* в const_iterator
Я обновился до более нового компилятора C++ (перешел с Visual C++ 6.0 на Visual C++ 2015) и работаю над преобразованием класса шаблона Vector, чтобы он был совместимым. Одна ошибка, с которой я сталкиваюсь, связана с методом vector::erase и типом...
1233 просмотров
schedule
08.07.2022
С++ отсортированное представление диапазона - как создать const_iterator?
Я пытаюсь написать класс, который должен действовать как отсортированное представление некоторой базовой последовательности элементов. До сих пор я придумал не- const версию. Теперь у меня проблемы с его адаптацией, чтобы он также обеспечивал...
579 просмотров
schedule
25.07.2022
Должен ли обычный итератор (или аналогичный класс диапазона/представления) быть производным от const_iterator?
Является ли хорошей практикой делать обычный итератор (или аналогичный диапазон или класс представления) производным от соответствующего const_iterator?
мотивация для этого
поделиться кодом и
избегая преобразований, когда...
92 просмотров
schedule
05.09.2022
как определить неявное преобразование из пользовательского итератора в пользовательский const_iterator
Я пишу класс контейнера "Дерево" в стиле STL. В настоящее время я поддерживаю константные и неконстантные итераторы, используя один класс со следующей идиомой:
template<typename T>
class Tree
{
public:
using iterator =...
963 просмотров
schedule
30.03.2023
Аннулирование итератора с помощью `std :: string :: begin ()` / `std :: string :: end ()`?
#include <string>
#include <iostream>
int main() {
std::string s = "abcdef";
std::string s2 = s;
auto begin = const_cast<std::string const &>(s2).begin();
auto end = s2.end();
std::cout << end -...
960 просмотров
schedule
06.06.2023
Каковы правила, регулирующие постоянство возвращаемого значения `operator*` для InputIterator и OutputIterator?
Я определяю итераторы для пользовательского контейнера. Итераторы реализуют концепции InputIterator и OutputIterator.
Какие типы следует использовать для iterator::reference и const_iterator::reference ? И какие типы должен возвращать...
56 просмотров
schedule
24.03.2023
Новая подпись std::map::erase() C++17
Согласно этому ответу , iterator должно быть неявно преобразовано в const_iterator . Поскольку это правда, как мы видим в insert_or_assign() , то почему в C++17 была ли добавлена новая подпись к std::map::erase() ?
В С++ 11 у нас есть...
991 просмотров
schedule
07.01.2023