Здравствуйте, гость ( Вход | Регистрация )
![]() ![]() |
|
__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
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2946 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34
|
Цитата(__ilya__ @ 11.2.2013, 1:54) Link 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
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2946 Регистрация: 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
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2946 Регистрация: 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
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2946 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34
|
я не наступаю на грабли с утечками памяти - как раз с момента, когда начал пользоваться STL. И речь вовсе не про Qt , у меня основные проекты делаются в студии на MFC
всё дело в радиусе кривизны рук Ну а что там под маком - меня как-то мало волнует Более того, какой ещё memmove, в векторе элементы копируются оператором = . А когда мне внезапно потребовалась космическая скорость копирования, а код это не предоставил (не припомню случаев, кстати), можно с учётом особенностей элементов всё тот же memmove самому вызвать Сообщение отредактировал Алексей1153 - 12.2.2013, 12:27 |
|
|
|
|
Алексей1153 |
12.2.2013, 12:21
Сообщение
#10
|
![]() фрилансер ![]() ![]() ![]() ![]() ![]() ![]() Группа: Участник Сообщений: 2946 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34
|
...
опа, два раза отправилось Сообщение отредактировал Алексей1153 - 12.2.2013, 12:21 |
|
|
|
![]() ![]() ![]() |
|
Текстовая версия | Сейчас: 2.1.2026, 15:41 |