crossplatform.ru

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

6 страниц V   1 2 3 > »   
Ответить в данную темуНачать новую тему
> вставка 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
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
iReset
  опции профиля:
сообщение 11.2.2013, 5:44
Сообщение #2


Участник
**

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

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




Репутация:   2  


v0 += v1;


Сообщение отредактировал iReset - 11.2.2013, 5:54
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
Алексей1153
  опции профиля:
сообщение 11.2.2013, 7:45
Сообщение #3


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

Группа: Участник
Сообщений: 2941
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

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




Репутация:   34  


Цитата(__ilya__ @ 11.2.2013, 1:54) *
vector<t> v0, v1, v2;
//
//
v0.insert(v0.end(), v1.begin(), v2.end());


потому что ошибка, вот и не получается ))

v0.insert(v0.end(), v1.begin(), v1.end());
v0.insert(v0.end(), v2.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 от компилятора к компилятору не различается ? :D

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
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

6 страниц V   1 2 3 > » 
Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


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




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