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

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

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

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

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

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

Преобразование одного массива данных в другой - C++
Как сделать преобразование одного массива данных в CSV файлах? Пример считываем 12 столбец файла (в нём записаны числа - 1,2,3,4,5 и т.д.),...

Преобразование из одного класса в другой - C++
Привет, есть два класса RUSmoney и USmoney. Там я сделал конвертирование из RUSmoney в USmoney и наоборот (строки 41 и 75) Вот код: ...

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

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

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

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

12
DiffEreD
1430 / 767 / 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());
0
gray_fox
What a waste!
1521 / 1226 / 70
Регистрация: 21.04.2012
Сообщений: 2,565
Завершенные тесты: 3
22.11.2013, 13:29 #3
Цитата Сообщение от max-gambit Посмотреть сообщение
Поэлементно с помощью цикла очень долго, не подходит.
Быстрее некуда...
0
Tulosba
:)
Эксперт С++
4396 / 3232 / 297
Регистрация: 19.02.2013
Сообщений: 9,045
22.11.2013, 13:38 #4
max-gambit, а зачем преобразование понадобилось? Может проще сразу иметь массив вещественных чисел?
0
Qwertiy
821 / 629 / 75
Регистрация: 20.08.2013
Сообщений: 2,523
22.11.2013, 13:42 #5
DiffEreD, и с чего же это быстрее?

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

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

Как в переменной строкового типа заменить все вхождения одного символа на другой? - C++
Подскажите как в переменной строкового типа заменить все вхождения одного символа на другой. Очень обрадуюсь ссылке или примеру кода...

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

Из одного массива сформировать другой - C++
Здравствуйте, нужна помощь. Уже второй день пытаюсь решить задачку на массив но ни как не получается. Нужно сформировать из массива x(n)...

Вставка одного массива в другой - C++
Есть вот такие вот 2 задачки- 1) даны 2 массива А и В. нужно вставить один массив в другой, при этом - мы сами вводим номер элемента,...


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

Или воспользуйтесь поиском по форуму:
13
Yandex
Объявления
22.11.2013, 17:52
Ответ Создать тему
Опции темы

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