Форум программистов, компьютерный форум, киберфорум
Наши страницы
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
max-gambit
0 / 0 / 0
Регистрация: 15.11.2013
Сообщений: 14
#1

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

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

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

Преобразование одного массива данных в другой
Как сделать преобразование одного массива данных в CSV файлах? Пример считываем...

Преобразование из одного класса в другой
Привет, есть два класса RUSmoney и USmoney. Там я сделал конвертирование из...

Преобразование указателя одного типа в указатель другого
Помоги пожалуйста составить программу: Преобразовать указатель одного типа в...

Как присвоить значение одного из элементов массива типа char переменной типа int?
С++ начал буквально только что так что буду благодарен за терпение и понимание...

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

12
DiffEreD
1442 / 779 / 257
Регистрация: 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());
0
gray_fox
What a waste!
1553 / 1258 / 166
Регистрация: 21.04.2012
Сообщений: 2,636
Завершенные тесты: 3
22.11.2013, 13:29 #3
Цитата Сообщение от max-gambit Посмотреть сообщение
Поэлементно с помощью цикла очень долго, не подходит.
Быстрее некуда...
0
Tulosba
:)
Эксперт С++
4747 / 3241 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
22.11.2013, 13:38 #4
max-gambit, а зачем преобразование понадобилось? Может проще сразу иметь массив вещественных чисел?
0
Qwertiy
821 / 629 / 100
Регистрация: 20.08.2013
Сообщений: 2,524
22.11.2013, 13:42 #5
DiffEreD, и с чего же это быстрее?

max-gambit, не может быть медленно циклом, если ты в нём какую-нибудь фигню типа ресайза массива не написал.
0
max-gambit
0 / 0 / 0
Регистрация: 15.11.2013
Сообщений: 14
22.11.2013, 14:30  [ТС] #6
Есть массив int-овых чисел, который с определенной частотой обновляется. И нужно по этим числам построить график с помощью qwt(графическая библиотека). Подходящий для меня метод оперирует только double векторами, посему мне нужно преобразовать вектор int в double. А т.к. данные обновляются примерно раз в секунду, то чем быстрее будет происходить преобразование, тем лучше. Вектор имеет примерную длину 1000X100. Вообще стоит задача оптимизации скорости работы данной программы.
0
gray_fox
What a waste!
1553 / 1258 / 166
Регистрация: 21.04.2012
Сообщений: 2,636
Завершенные тесты: 3
22.11.2013, 14:40 #7
max-gambit, а обновлять массив double нельзя?
0
max-gambit
0 / 0 / 0
Регистрация: 15.11.2013
Сообщений: 14
22.11.2013, 14:54  [ТС] #8
данные поступают именно в формате int. Вообще не очень здорово что приходится их переводить в double, т.к. тогда вектор будет весить достаточно много, но тут уж мои полномочия ограничиваются возможностями qwt...
0
Tulosba
:)
Эксперт С++
4747 / 3241 / 497
Регистрация: 19.02.2013
Сообщений: 9,046
22.11.2013, 15:15 #9
max-gambit, если поступают в интах, а нужно в даблах, то преобразовывать придется поэлементно.
Цитата Сообщение от max-gambit Посмотреть сообщение
вектор будет весить достаточно много
всего-то в 2 раза больше (скорее всего, при 4 байтном целом, и 8 байтном дабле)
0
gray_fox
What a waste!
1553 / 1258 / 166
Регистрация: 21.04.2012
Сообщений: 2,636
Завершенные тесты: 3
22.11.2013, 15:17 #10
max-gambit, единственный вариант, который я лично вижу здесь - избавиться от преобразования, т.е. хранить сразу в double.
0
Qwertiy
821 / 629 / 100
Регистрация: 20.08.2013
Сообщений: 2,524
22.11.2013, 16:51 #11
Цитата Сообщение от max-gambit Посмотреть сообщение
Вектор имеет примерную длину 1000X100.
Это существенно менее секунды.
Кстати, используй указатели вместо обращения по индексу.

Цитата Сообщение от max-gambit Посмотреть сообщение
И нужно по этим числам построить график
Эм.. Т. е. график построиться успевает, а числа перевестись - нет?
Что-то подозрительно...
0
gray_fox
What a waste!
1553 / 1258 / 166
Регистрация: 21.04.2012
Сообщений: 2,636
Завершенные тесты: 3
22.11.2013, 16:56 #12
Цитата Сообщение от Qwertiy Посмотреть сообщение
Кстати, используй указатели вместо обращения по индексу.
Даже если это вдруг и будет иметь эффект, то незначительный.
0
Qwertiy
821 / 629 / 100
Регистрация: 20.08.2013
Сообщений: 2,524
22.11.2013, 17:52 #13
Цитата Сообщение от gray_fox Посмотреть сообщение
Даже если это вдруг и будет иметь эффект, то незначительный.
Это будет иметь эффект в виде отсутствия двух операций сложения на элемент.
Правда, появится ещё один инкремент.
0
22.11.2013, 17:52
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
22.11.2013, 17:52

Как в переменной строкового типа заменить все вхождения одного символа на другой?
Подскажите как в переменной строкового типа заменить все вхождения одного...

Выскакивают ошибки конвертации одного типа в другой, как возможно это исправить?
Задача: Составить программу, которая содержит динамическую информацию о...

Из одного массива сделать два массива, в один перенести четные элементы, в другой нечетные
Здравствуйте , помогите пожалуйста с такой задачей из одного массива сделать...


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

Или воспользуйтесь поиском по форуму:
13
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru