crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> вставка QVector в другой QVector
__ilya__
  опции профиля:
сообщение 10.2.2013, 22:54
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 57
Регистрация: 19.1.2012
Пользователь №: 3143

Спасибо сказали: 0 раз(а)




Репутация:   0  


Как вставить один вектор в конец другого.
Как в vector с помощью insert не получается
 
vector<t> v0, v1, v2;
//
//
v0.insert(v0.end(), v1.begin(), v2.end());

как-то так можно со стандартным вектором. С QVector не получается, пишет -нет такого прототипа
использую Qt4.8

Сообщение отредактировал __ilya__ - 10.2.2013, 22:54
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
Авварон
  опции профиля:
сообщение 14.2.2013, 15:22
Сообщение #2


Студент
*

Группа: Участник
Сообщений: 99
Регистрация: 26.4.2009
Пользователь №: 709

Спасибо сказали: 14 раз(а)




Репутация:   0  


Iron Bug
То есть ваша позиция - если в либе есть одна медленная часть (сигнал-слоты), то можно на производительность остальных частей забить? Окей... Я бы не хотел с вами в команде работать:)

Цитата(Алексей1153 @ 14.2.2013, 15:49) *
Теперь, какие моменты нужно действительно оптимизировать: такие, которые действительно сказались на производительности. Один вызов qvector.toStdVector (его вызывать никогда не приходилось, кстати) перед долгим циклов вычислений не будет заметен совсем. Затем: всё, что касается GUI оптимизировать по скорости вообще не требуется (но и тут разумность нужна - 5 секунд после нажатия кнопки юзера не устроят). Это так получается само собой - реакция человека гораздо медленнее любого разумного лага "производительности". И там можно не задумываясь хоть 10 раз вызвать qvector.toStdVector! Это ни на что не повлияет

Спасибо, кэп. А может и повлияет - пока вы не напишите код и не прогоните его профилировщиком, вы этого не узнаете. Но писать абсолютно ненужный код конвертации я смысла не вижу. Это всего навсего говорит о том, что вы плохо смыслите в архитектуре и выборе инструментария (в этом нет ничего предосудительного, я вообще мало встречал людей, которые могут построить хорошую архитектуру приложения; я вот, например, не умею писать хорошо алгоритмы).
Ну или второй вариант - все ваши приложения состоят из одной формочки, которые отображают сложные рассчеты. Там да, можно и сконвертировать один раз перед выводом на экран. Но это не исчерпывает все возможные приложения:)
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Iron Bug
  опции профиля:
сообщение 14.2.2013, 23:17
Сообщение #3


Профессионал
*****

Группа: Модератор
Сообщений: 1611
Регистрация: 6.2.2009
Из: Yekaterinburg
Пользователь №: 533

Спасибо сказали: 219 раз(а)




Репутация:   12  


Цитата(Авварон @ 14.2.2013, 18:22) *
Iron Bug
То есть ваша позиция - если в либе есть одна медленная часть (сигнал-слоты), то можно на производительность остальных частей забить? Окей... Я бы не хотел с вами в команде работать:)

да никто и не заставляет :D
чтобы со мной в одной команде работать, надо слишком дофига знать.

а теперь ещё немного ликбеза:
любая надстройка или библиотека, по определению, не ускоряет, а замедляет работу кода. ваш кэп.
кроссплатформенность чаще всего его тоже замедляет: надо чем-то жертвовать для поддержки разных платформ и разных систем. не бывает прибавки в скорости, когда начинается унивесализация.
Qt - далеко не та библиотека, которую тщательно оптимизировали по скорости. она не для этих целей создавалась. и она хороша, но для своего круга задач. например, по скорости тот же Boost гораздо мощнее. но он не нравится новичкам, которым бывает трудно в нём с ходу разобраться, и в нём нет графических модулей, потому что это не прикладная библиотека, а тестовый полигон для стандартизации С++. есть ещё математические библиотеки от Intel - замечательнейшая вещь! есть библиотеки для работы с MPI. вот это настоящая оптимизация. но она, опять же, чаще всего зависит от платформы.
ну и, кроме библиотек, есть ещё простые методы оптимизации вручную. этого никто не отменял. алгоритмы, Кнут и математика. плюс знание работы процессоров и операционных систем. мне просто часто с этим приходится сталкиваться. ни один компилятор не может оптимизировать код так, как это может сделать человек. и тут надо просто применять мозг, никакая автоматизация и библиотеки не помогут. это требует очень хорошего, глубокого и детального знания как тонкостей языка, так и особенностей используемого компилятора.
но, к счастью для программистов, с реальной оптимизацией они сталкиваются крайне редко. в 99.9% случаев тонкая оптимизация - это просто излишество и никто не заморачивается. медленных миллисекундных реакций системы за глаза хватает для большинства задач ПО. юзер таких интервалов не замечает, да и система не особо напрягается: процы стали мощными и многоядерными, появились множественные сопроцессоры, быстый обмен с памятью, кэширование данных на винтах, GPU и многое другое. в общем, чтобы нагрузить комп, надо ещё очень постараться. поэтому в последние годы никого особо не волнует тщательная оптимизация ПО для обычных компов. эти вопросы встают в ядрах OS, во встроенных RTOS системах, в микроконтроллерах, в автоматизации с риалтаймом. вот там это в полный рост и очень важно. а на юзерских PC на это можно смело забить (до определённой разумной степени, конечно, как правильно заметил Алексей1153). пока юзер не жужжит - програмист не чешется. обычно выбирают некий компромисс между скоростью разработки и степенью оптимизации и затраченным на это ресурсам.
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме
- __ilya__   вставка QVector в другой QVector   10.2.2013, 22:54
- - iReset   v0 += v1;   11.2.2013, 5:44
- - Алексей1153   Цитата(__ilya__ @ 11.2.2013, 1:54) vector...   11.2.2013, 7:45
- - __ilya__   потому что ошибка, вот и не получается )) ...   11.2.2013, 8:41
- - Алексей1153   __ilya__, пользуйся стандартным и проверенным std:...   11.2.2013, 8:52
- - Авварон   "стандартные и проверенные" std::vector ...   11.2.2013, 15:30
- - Алексей1153   стал быть QVector от компилятора к компилятору не ...   11.2.2013, 17:07
- - Авварон   1) Сорцы QVector не различаются, а значит один и т...   12.2.2013, 11:33
- - Алексей1153   я не наступаю на грабли с утечками памяти - как ра...   12.2.2013, 12:20
- - Алексей1153   ... опа, два раза отправилось   12.2.2013, 12:21
- - Авварон   Вы абсолютно не поняли, что я сказал.   12.2.2013, 12:24
- - Алексей1153   я прочитал ещё раз. Вроде всё понял   12.2.2013, 12:27
- - ilyabvt   ЦитатаС стд::вектором можно напороться на весьма и...   12.2.2013, 19:11
- - Авварон   Разве вектор не может, в случае если тип Т мувабл ...   13.2.2013, 16:38
|- - Iron Bug   Цитата(Авварон @ 13.2.2013, 19:38) А вы в...   13.2.2013, 17:43
- - Алексей1153   Авварон, только не нервничай ты так давай пример...   13.2.2013, 19:43
- - Авварон   Окей, что, по вашему, должен возвращать этот http:...   13.2.2013, 19:47
- - Алексей1153   >> когда классов больше чем 2 штуки и между ...   13.2.2013, 19:50
- - Авварон   В вашем АПИ придется писать на 1 строку больше в э...   13.2.2013, 20:12
- - Алексей1153   Цитата(Авварон @ 13.2.2013, 23:12) В ваше...   13.2.2013, 22:09
- - Авварон   Я знаю человека, он пишет на ассемблере, и "п...   13.2.2013, 22:39
- - Алексей1153   Цитата(Авварон @ 14.2.2013, 1:39) Я знаю ...   14.2.2013, 6:28
- - Авварон   Писание на с++ - это не аргумент в пользу того, чт...   14.2.2013, 9:48
- - Iron Bug   эх, молодо-зелено! если говорить про серьёз...   14.2.2013, 13:26
- - Алексей1153   Цитата(Авварон @ 14.2.2013, 12:48) Писани...   14.2.2013, 14:49
- - lanz   Цитата(Iron Bug @ 14.2.2013, 14:26) эх, м...   14.2.2013, 15:02
- - Авварон   Iron Bug То есть ваша позиция - если в либе есть о...   14.2.2013, 15:22
|- - Iron Bug   Цитата(Авварон @ 14.2.2013, 18:22) Iron B...   14.2.2013, 23:17
- - Алексей1153   Цитата(Авварон @ 14.2.2013, 18:22) я вот,...   14.2.2013, 16:29
- - Авварон   Алексей1153 По первой программе ничего не могу ска...   14.2.2013, 21:06
- - Авварон   Iron Bug Вы зря считаете, что никто Qt не оптимизи...   15.2.2013, 10:10
- - Алексей1153   Авварон, Цитата(Авварон @ 15.2.2013, 0:06...   15.2.2013, 11:16
- - Авварон   Цифры вы можете приводить сколько угодно, но если ...   15.2.2013, 11:31
- - Алексей1153   Цитата(Авварон @ 15.2.2013, 14:31) если в...   15.2.2013, 11:58
- - lanz   ЦитатаEvery C++ programmer is a showoff   15.2.2013, 11:59
- - Алексей1153   lanz, ну давай, начинай ))   15.2.2013, 12:03
- - Авварон   Цитата(Алексей1153 @ 15.2.2013, 11:58) он...   15.2.2013, 12:20
- - Алексей1153   Цитата(Авварон @ 15.2.2013, 15:20) То, чт...   15.2.2013, 12:31
- - Авварон   Цитата(Алексей1153 @ 15.2.2013, 13:31) ал...   15.2.2013, 14:27
- - Алексей1153   Цитата(Авварон @ 15.2.2013, 17:27) при вс...   15.2.2013, 18:19
- - Авварон   То есть тест вы так и не скачали и не посмотрели? ...   15.2.2013, 18:44
- - Алексей1153   Цитата(Авварон @ 15.2.2013, 21:44) почему...   15.2.2013, 19:07
- - Авварон   В том-то и вся фишка, что для QString не используе...   15.2.2013, 19:41
- - Алексей1153   Цитата(Авварон @ 15.2.2013, 22:41) В том-...   15.2.2013, 20:33
- - Авварон   Всё дело в том, что у QString'а в хедере есть ...   16.2.2013, 0:03
- - __ilya__   в общем два вектора соеденяются так: QVector<T...   16.2.2013, 12:37
- - Алексей1153   Авварон, ну QString, по сути, и есть один указател...   16.2.2013, 16:33
|- - Авварон   Цитата(Алексей1153 @ 16.2.2013, 17:33) Ав...   17.2.2013, 10:32
- - Алексей1153   Цитата(Авварон @ 17.2.2013, 13:32) А писа...   17.2.2013, 12:30
|- - Авварон   Цитата(Алексей1153 @ 17.2.2013, 13:30) Ци...   17.2.2013, 13:30
- - Алексей1153   1) ну и нехай пользуется ) Мне таких больших масс...   17.2.2013, 17:25
- - Авварон   Каким местом он развернется в присваивание указате...   17.2.2013, 17:31
- - Алексей1153   Авварон, я и не говорил, что это точно произойдёт ...   18.2.2013, 7:19
- - Авварон   Нашли, чем удивить. Компиляторы умные, я этого не ...   18.2.2013, 11:19
- - Алексей1153   ну, раз нельзя, то нельзя Главное, что по скорост...   20.2.2013, 9:00


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


5 чел. читают эту тему (гостей: 5, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 29.11.2024, 11:39