Форум программистов, компьютерный форум CyberForum.ru

Перевод указателя в итератор - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Рисование многоугольников http://www.cyberforum.ru/cpp-beginners/thread1538788.html
Осуществить вывод на экран сцены, состоящей из 10 многоугольников, случайным образом расположенных на графическом экране. Генерируем случайный вектор - случайные угол и длину. Угол меняется от 0 до 360. Получаем несколько точек, которые соединяем по порядку. Получается многоугольник. Предусмотреть возможность для пользователя выбора многоугольника с использованием графического курсора для...
C++ Алгоритм RLE Прошу помочь выйти мне из тупика) Подсказки,исправление ли направление что и где исправлять. Задачи: 1. Написать функции чтения и записи данных в двоичный файл. 2. Реализовать алгоритм поиска префикса в байтовом массиве. 3. Реализовать алгоритм кодирования данных посредствам RLE кода. 4. Предложить и реализовать алгоритм декодирования RLE кода. #include <ios> http://www.cyberforum.ru/cpp-beginners/thread1538783.html
C++ MySQL и C++. Как подключить <mysql.h>?
Не получилось( Тема старая, но решения универсального не нашел... #include <iostream> #include <mysql.h> MYSQL *connection, mysql; MYSQL_RES *result; MYSQL_ROW row; int query_state; int main()
C++ Itoa варианты
НА этапе компиляции ошибка в строке itoa() Выдает что то типа: Ошибка 1 error C4996: 'itoa': The POSIX name for this item is deprecated. Instead, use the ISO C++ conformant name: _itoa. See online help for details. Насколько я понимаю, есть новый синтаксис этой функции. кто в теме, хелп?
C++ Ошибка при создании проекта MS VC2010 Express http://www.cyberforum.ru/cpp-beginners/thread1538779.html
Появляется такая ошибка при создании нового проекта
C++ Реализация std::list<>::begin() Вопрос строго для знатоков реализации STL. Каким образом реализована "перегрузка" у списка метода begin() только по возвращаемому значению? Т.е. этот метод может возвращать как iterator, так и const_iterator Я лично вижу тут два пути : либо const_iterator наследуется от iterator (или наоборот), либо const_iterator является другом iterator (или наоборот). Но хочется знать уж наверняка (реализую... подробнее

Показать сообщение отдельно
Nick Alte
Эксперт С++
1603 / 995 / 118
Регистрация: 27.09.2009
Сообщений: 1,918
Завершенные тесты: 1
28.09.2015, 18:58     Перевод указателя в итератор
Цитата Сообщение от Renji Посмотреть сообщение
А чем тут поможет вектор, я честно говоря не понял. Там, для удаления элемента, точно также нужно итератор.
Нужно. Но преобразования из указателя в итератор и обратно для вектора очень простые:
C++
1
2
3
4
std::vector<MyType> v(1024);
std::vector<MyType>::iterator it = findRequiredElement(v);
MyType* ptr = &*it;
std::vector<MyType>::iterator it2 = vec.begin() + (ptr - vec.data());  // Если C++11 недоступен, то vec.begin() + (ptr - &vec[0]);
Разумеется, это всё будет создавать массу потенциальных проблем (особенно если указатель доживёт до операции добавления нового элемента или ресайза).
 
Текущее время: 20:20. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru