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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
max-gambit
0 / 0 / 0
Регистрация: 15.11.2013
Сообщений: 13
#1

Преобразование массива одного типа в другой - C++

22.11.2013, 13:16. Просмотров 645. Ответов 12
Метки нет (Все метки)

Есть массив int-овых чисел. Нужно его перевести в массив double. Поэлементно с помощью цикла очень долго, не подходит. Может быть есть какая-нибудь функция или библиотека, чтобы быстро преобразовать тип?
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
22.11.2013, 13:16     Преобразование массива одного типа в другой
Посмотрите здесь:

Из одного массива сформировать другой C++
Как в переменной строкового типа заменить все вхождения одного символа на другой? C++
C++ Копирование одного массива в другой
Переписать из одного массива в другой C++
Из одного массива сформировать другой C++
C++ Конвертация одного типа в другой с потерей данных
C++ Выскакивают ошибки конвертации одного типа в другой, как возможно это исправить?
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
DiffEreD
1427 / 764 / 95
Регистрация: 21.06.2011
Сообщений: 1,740
Записей в блоге: 2
22.11.2013, 13:27     Преобразование массива одного типа в другой #2
C++
1
2
std::vector<int> i {1,2,3,4,5};
std::vector<double> d(i.begin(), i.end());
gray_fox
What a waste!
1256 / 1139 / 55
Регистрация: 21.04.2012
Сообщений: 2,361
Завершенные тесты: 3
22.11.2013, 13:29     Преобразование массива одного типа в другой #3
Цитата Сообщение от max-gambit Посмотреть сообщение
Поэлементно с помощью цикла очень долго, не подходит.
Быстрее некуда...
Tulosba
:)
Эксперт С++
4390 / 3233 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
22.11.2013, 13:38     Преобразование массива одного типа в другой #4
max-gambit, а зачем преобразование понадобилось? Может проще сразу иметь массив вещественных чисел?
Qwertiy
818 / 626 / 75
Регистрация: 20.08.2013
Сообщений: 2,525
22.11.2013, 13:42     Преобразование массива одного типа в другой #5
DiffEreD, и с чего же это быстрее?

max-gambit, не может быть медленно циклом, если ты в нём какую-нибудь фигню типа ресайза массива не написал.
max-gambit
0 / 0 / 0
Регистрация: 15.11.2013
Сообщений: 13
22.11.2013, 14:30  [ТС]     Преобразование массива одного типа в другой #6
Есть массив int-овых чисел, который с определенной частотой обновляется. И нужно по этим числам построить график с помощью qwt(графическая библиотека). Подходящий для меня метод оперирует только double векторами, посему мне нужно преобразовать вектор int в double. А т.к. данные обновляются примерно раз в секунду, то чем быстрее будет происходить преобразование, тем лучше. Вектор имеет примерную длину 1000X100. Вообще стоит задача оптимизации скорости работы данной программы.
gray_fox
What a waste!
1256 / 1139 / 55
Регистрация: 21.04.2012
Сообщений: 2,361
Завершенные тесты: 3
22.11.2013, 14:40     Преобразование массива одного типа в другой #7
max-gambit, а обновлять массив double нельзя?
max-gambit
0 / 0 / 0
Регистрация: 15.11.2013
Сообщений: 13
22.11.2013, 14:54  [ТС]     Преобразование массива одного типа в другой #8
данные поступают именно в формате int. Вообще не очень здорово что приходится их переводить в double, т.к. тогда вектор будет весить достаточно много, но тут уж мои полномочия ограничиваются возможностями qwt...
Tulosba
:)
Эксперт С++
4390 / 3233 / 297
Регистрация: 19.02.2013
Сообщений: 9,044
22.11.2013, 15:15     Преобразование массива одного типа в другой #9
max-gambit, если поступают в интах, а нужно в даблах, то преобразовывать придется поэлементно.
Цитата Сообщение от max-gambit Посмотреть сообщение
вектор будет весить достаточно много
всего-то в 2 раза больше (скорее всего, при 4 байтном целом, и 8 байтном дабле)
gray_fox
What a waste!
1256 / 1139 / 55
Регистрация: 21.04.2012
Сообщений: 2,361
Завершенные тесты: 3
22.11.2013, 15:17     Преобразование массива одного типа в другой #10
max-gambit, единственный вариант, который я лично вижу здесь - избавиться от преобразования, т.е. хранить сразу в double.
Qwertiy
818 / 626 / 75
Регистрация: 20.08.2013
Сообщений: 2,525
22.11.2013, 16:51     Преобразование массива одного типа в другой #11
Цитата Сообщение от max-gambit Посмотреть сообщение
Вектор имеет примерную длину 1000X100.
Это существенно менее секунды.
Кстати, используй указатели вместо обращения по индексу.

Цитата Сообщение от max-gambit Посмотреть сообщение
И нужно по этим числам построить график
Эм.. Т. е. график построиться успевает, а числа перевестись - нет?
Что-то подозрительно...
gray_fox
What a waste!
1256 / 1139 / 55
Регистрация: 21.04.2012
Сообщений: 2,361
Завершенные тесты: 3
22.11.2013, 16:56     Преобразование массива одного типа в другой #12
Цитата Сообщение от Qwertiy Посмотреть сообщение
Кстати, используй указатели вместо обращения по индексу.
Даже если это вдруг и будет иметь эффект, то незначительный.
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.11.2013, 17:52     Преобразование массива одного типа в другой
Еще ссылки по теме:

Копирование одного массива в другой C++
C++ Преобразование указателя одного типа в указатель другого
C++ Из одного массива сделать два массива, в один перенести четные элементы, в другой нечетные
C++ Преобразование одного массива данных в другой
C++ Преобразование из одного класса в другой

Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
Qwertiy
818 / 626 / 75
Регистрация: 20.08.2013
Сообщений: 2,525
22.11.2013, 17:52     Преобразование массива одного типа в другой #13
Цитата Сообщение от gray_fox Посмотреть сообщение
Даже если это вдруг и будет иметь эффект, то незначительный.
Это будет иметь эффект в виде отсутствия двух операций сложения на элемент.
Правда, появится ещё один инкремент.
Yandex
Объявления
22.11.2013, 17:52     Преобразование массива одного типа в другой
Ответ Создать тему
Опции темы

Текущее время: 21:10. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru