вставка QVector в другой QVector |
Здравствуйте, гость ( Вход | Регистрация )
вставка QVector в другой QVector |
__ilya__ |
10.2.2013, 22:54
Сообщение
#1
|
Студент Группа: Участник Сообщений: 57 Регистрация: 19.1.2012 Пользователь №: 3143 Спасибо сказали: 0 раз(а) Репутация: 0 |
Как вставить один вектор в конец другого.
Как в vector с помощью insert не получается
как-то так можно со стандартным вектором. С QVector не получается, пишет -нет такого прототипа использую Qt4.8 Сообщение отредактировал __ilya__ - 10.2.2013, 22:54 |
|
|
iReset |
11.2.2013, 5:44
Сообщение
#2
|
Участник Группа: Участник Сообщений: 178 Регистрация: 6.6.2012 Пользователь №: 3414 Спасибо сказали: 23 раз(а) Репутация: 2 |
Сообщение отредактировал iReset - 11.2.2013, 5:54 |
|
|
Алексей1153 |
11.2.2013, 7:45
Сообщение
#3
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
vector<t> v0, v1, v2; // // v0.insert(v0.end(), v1.begin(), v2.end()); потому что ошибка, вот и не получается ))
хотя, хм, и правда нет такой функции. Ну я кутешными контейнерами не пользуюсь, так что не страдаю ) Сообщение отредактировал Алексей1153 - 11.2.2013, 7:46 |
|
|
__ilya__ |
11.2.2013, 8:41
Сообщение
#4
|
Студент Группа: Участник Сообщений: 57 Регистрация: 19.1.2012 Пользователь №: 3143 Спасибо сказали: 0 раз(а) Репутация: 0 |
ну да ошибся. Но все-равно нет такой функции в QVector. Так как мне быть? Пока я в цикле через puhs_back вставляю.
Сообщение отредактировал __ilya__ - 11.2.2013, 8:42 |
|
|
Алексей1153 |
11.2.2013, 8:52
Сообщение
#5
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
__ilya__, пользуйся стандартным и проверенным std::vector
обычно его полностью достаточно. А если где потребуется для нужд Qt , можно быстренько соорудить QVector QVector<T> fromStdVector ( const std::vector<T> & vector ) и ещё - если тебе вставка только в конец нужна, см. пост iReset |
|
|
Авварон |
11.2.2013, 15:30
Сообщение
#6
|
Студент Группа: Участник Сообщений: 99 Регистрация: 26.4.2009 Пользователь №: 709 Спасибо сказали: 14 раз(а) Репутация: 0 |
"стандартные и проверенные" std::vector различаются от компилятора к компилятору и не имеют COW (по крайней мере в тех конпилерах, что я смотрел - шланг и мсвц)
|
|
|
Алексей1153 |
11.2.2013, 17:07
Сообщение
#7
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
стал быть QVector от компилятора к компилятору не различается ?
1) никогда не было проблем с std::vector 2) COW - зачем тебе это, по мне - так это замусоривание понимания происходящего. Есть указатели и ссылки |
|
|
Авварон |
12.2.2013, 11:33
Сообщение
#8
|
Студент Группа: Участник Сообщений: 99 Регистрация: 26.4.2009 Пользователь №: 709 Спасибо сказали: 14 раз(а) Репутация: 0 |
1) Сорцы QVector не различаются, а значит один и тот же баг Кувектора будет один и тот же под разными компилерами и воркэраунды одинаковые. Аналогично про скорость работы и многое другое. С стд::вектором можно напороться на весьма и весьма веселые вещи - например меммув сделан чуть по другому - и на винде все летает, а на маке проседает на меммуве (хотя и спеки в терминах о-нотации и соблюдены, различия могут давать о себе знать). У меня вот тоже не было проблем с стд::вектором, но я не очень рвусь поддерживать 3 версии темплейтного шаманства.
2) Ну если вам нравится наступать на грабли с утечками памяти, вместо чтоб юзать COW и не париться, не могу вам запретить Сообщение отредактировал Авварон - 12.2.2013, 11:33 |
|
|
Алексей1153 |
12.2.2013, 12:20
Сообщение
#9
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
я не наступаю на грабли с утечками памяти - как раз с момента, когда начал пользоваться STL. И речь вовсе не про Qt , у меня основные проекты делаются в студии на MFC
всё дело в радиусе кривизны рук Ну а что там под маком - меня как-то мало волнует Подозреваю, что дело также вовсе не в memmove . Более того, какой ещё memmove, в векторе элементы копируются оператором = . А когда мне внезапно потребовалась космическая скорость копирования, а код это не предоставил (не припомню случаев, кстати), можно с учётом особенностей элементов всё тот же memmove самому вызвать Сообщение отредактировал Алексей1153 - 12.2.2013, 12:27 |
|
|
Алексей1153 |
12.2.2013, 12:21
Сообщение
#10
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
...
опа, два раза отправилось Сообщение отредактировал Алексей1153 - 12.2.2013, 12:21 |
|
|
Текстовая версия | Сейчас: 29.11.2024, 6:57 |