outcast
Вопрос был риторический, объясни каким образом можно удалить из середины вектора элемент?
Методом непосредственного удаления.
Ваш К.О.
Alexander K
> Может и можно, но это либо будет жутко долго, либо потеряется порядок
> элементов, либо данные будут разбросаны по памяти.
Удаление будет быстрее чем в list, порядок элементов для твоей задачи наверняка не важен.
Alexander K
Вообще, в 99% случаев фраза "Сделал на STL, и всё стало тормозить" означает, что стл-ем пользоваться пациент не умеет.
Nikopol
И как же это сделать? Разбросать в итоге все элементы по памяти? Или забить на порядок элементов? Или каждый раз выделять память заного?
stringstream класс очень удобный, часто его использую. Вообще круто сделано, что есть такие классы (от потоков наследуются которые).
Но разве тут что-то понятно?
> каким образом можно удалить из середины вектора элемент?
если порядок элементов не важен, то проще всего скопировать на место удаляемого последний элемент вектора и уменьшить его размер на единицу
Alexander K
> Вопрос был риторический, объясни каким образом можно удалить из середины
> вектора элемент?
Это тоже риторический вопрос ? :)
Очевидно, обменом его с последним элементом и уменьшением размера вектора на 1.
Есть в принципе еще методы, но они несколько сложнее.
Nikopol
> Вообще, в 99% случаев фраза "Сделал на STL, и всё стало тормозить" означает,
> что стл-ем пользоваться пациент не умеет.
+1
>>если порядок элементов не важен, то проще всего скопировать на место удаляемого последний элемент вектора и уменьшить его размер на единицу
>>Очевидно, обменом его с последним элементом и уменьшением размера вектора на 1.
>>Удаление будет быстрее чем в list, порядок элементов для твоей задачи наверняка не важен.
Ахаха, а зачем тогда вообще нужен std::vector ?
Я же говорю Particle* p[MAX_PARTICLES], int count. Это же не велосипед, это просто кусок кода, написанный за пять секунд и который будет хорошо работать.
Alexander K
> Но разве тут что-то понятно?
Finds the equivalent char to a given char_type.
char narrow(
char_type _Char,
char _Default = '\0'
);
Parameters
_Char
The char to convert.
_Default
The char that you want returned if no equivalent is found.
Return Value
The equivalent char to a given char_type.
Remarks
....
Example
...
Открой для себя MSDN :)
outcast
Я уже сказал по поводу отдельной документации.
Ничего против не имею, но можно было сделать лучше.
Alexander K
> Ахаха, а зачем тогда вообще нужен std::vector ?
Чтобы не писать такую хрень: "Particle* p[MAX_PARTICLES], int count"
outcast
Эта хрень с задачей справляется на отлично и времени потребовала меньше.
Alexander K
> Я уже сказал по поводу отдельной документации.
>
> Ничего против не имею, но можно было сделать лучше.
Проблема в том, что сделать лучше или хотя бы также как в stl, большинство не может.
А так да, согласен с "но можно было сделать лучше" полностью :).
Alexander K
> Эта хрень с задачей справляется на отлично и времени потребовала меньше.
А "через год", когда ты будешь смотреть на эту хрень - сколько времени будешь вспоминать как оно работает и зачем вообще оно было нужно? :)
Тема в архиве.