Войти
ФлеймФорумПрограммирование

C++03 - удалить из вектора целых элементы меньше 10 (16 стр)

Страницы: 112 13 14 15 16 17 Следующая »
#225
12:52, 11 дек. 2017

1 frag / 2 deaths
> такой метод конечно должно быть внутри листа
назови его.


#226
13:07, 11 дек. 2017

1 frag / 2 deaths
> Накойхер?

На тот хер, что в листе лежит ссылка на полиморфный объект, а не сам объект. Этот код тебе тут ничем не поможет, внутри или снаружи.

#227
19:23, 11 дек. 2017

Aroch
> назови его.
PtrToIterator

=A=L=X=
> На тот хер, что в листе лежит ссылка на полиморфный объект, а не сам объект.
Да? А в №217 в коде в листе лежит сам объект.

#228
19:26, 11 дек. 2017

1 frag / 2 deaths
> Да? А в №217 в коде в листе лежит сам объект.

Если решается эта задача, то указатель на объект.

#229
19:29, 11 дек. 2017

=A=L=X=
> Если решается эта задача, то указатель на объект.
С чего ты взял, что тут нужен указатель на объект?
С чего ты взял, что лист хранит указатели на объект?

#230
19:32, 11 дек. 2017

1 frag / 2 deaths
> PtrToIterator
и какое твой выдуманный метод имеет отношение к std::list?

#231
19:43, 11 дек. 2017

=A=L=X=
я чего-то не понимаю
1)есть list, он хранит указатель на каждый объект?
2)ты хранишь внутри объекта указатель на объект справа от него или "умный" указатель на ноду листа, где лежит сам указатель на объект?
3)что мешает быстрому свапу или пересортировке обычного листа.

#232
19:51, 11 дек. 2017

1 frag / 2 deaths
> С чего ты взял, что тут нужен указатель на объект?

Ну там же написано - полиморфные объекты нужны.

1 frag / 2 deaths
> С чего ты взял, что лист хранит указатели на объект?

std::list хранит то что ты в него положишь, в случае коллекции полиморфных объектов ты обязан ложить туда указатели, смарты или нет.

#233
20:01, 11 дек. 2017

MAMOHT-92
> 1)есть list, он хранит указатель на каждый объект?
std::list хранить должен указатели, да.
интрузивный лист по своей природе хранит сами объекты, их полиморфность ему не мешает это делать as is.

> 2)ты хранишь внутри объекта указатель на объект справа от него или "умный"
> указатель на ноду листа, где лежит сам указатель на объект?

В интрузивном списке указатель на объект эквивалентен итератору, поэтому у него нет никакой проблемы отталкиваясь от самого объекта итерировать по соседям.
Поэтому в ряде задач интрузив выигрывает у std::list по всем очкам - и по памяти и по инструкциям.

> 3)что мешает быстрому свапу или пересортировке обычного листа.

То, что в упомянутой задаче объекту нужен итератор на самого себя чтобы пройтись по соседям - знать один только this в этом случае становится недостаточно.

#234
20:04, 11 дек. 2017

=A=L=X=
> Поэтому в ряде задач интрузив выигрывает у std::list по всем очкам - и по
> памяти и по инструкциям.

зато проигрывает по простоте использования ... видел бы ты списочги одних кудесников, тебе бы std::list показался бы божественной амброзией

раз в пять лет начинается очередной срач ...

#235
20:07, 11 дек. 2017

innuendo
> зато проигрывает по простоте использования

а что там сложного?

#236
21:07, 11 дек. 2017

=A=L=X=
> std::list хранит то что ты в него положишь, в случае коллекции полиморфных
> объектов ты обязан ложить туда указатели, смарты или нет.
Это косяк стдшной реализации листа. Я могу неинтрузивный полиморфный лист сделать, который позволяет по T* получать следующий и предыдущий.

#237
21:07, 11 дек. 2017

=A=L=X=
Ну если захотеть...

std::list<unsigned char[MAX_DERIVED_SIZE]>
и placement new.
#238
21:11, 11 дек. 2017

1 frag / 2 deaths
> Это косяк стдшной реализации листа.
Да, другие реализации я и не обсуждал. Там можно всякого наворотить, например в boost попросту есть intrusive::list.

#239
21:16, 11 дек. 2017

FordPerfect

Не, вот в таком виде не кул. Как Тарас предлагает - норм.

Страницы: 112 13 14 15 16 17 Следующая »
ФлеймФорумПрограммирование

Тема в архиве.