| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C++ Builder > Виды массивов |
| Автор: ano360 7.1.2007, 03:21 | ||
| Массив vector работает доволно мелдленно если постоянно измнять его размер, каки массивы работают быстрее. коментарии после кода.
Такая вот запаарочка. Есть двумерный массив произвольного размера, организован через vector. Есть функция, выполняющая поиск кратчайшего пути от одной точки до ней самойже в обход разных препятствий, тобишь определённых клеток массива. Массив: vector < vector < TRPoint> > Pts-(расшифровывается"Points") TRPoint-класс, в котором всё о данной клетке. функция с оригинальным названием FindWay - член класса TRPoint. вызываетсявот так Pts[i][j].FindWay(vector<TRCords> &vectorF,vector<TRCords> *vectorLoc,vector < vector < TRPoint> > &Pts,int &N,TRPointColor PC,TRCords i1j1,bool start=false) Вкратце о параметрах: vectorF-Сюда в итоге записываются все кординаты кратчайшего пути vectorLoc-сюда записываютс временные кординаты пути и потом сравниваются с vectorF. Pts-сам массив N-сюда в итоге записывается длинна кратчайшего пути. PC-цвет клетки. enum TRPointColor{Red,Blue,Free}; Free-свободная клетка Red-Можно ходить Blue- препятствие i1j1-кординаты начала start-true,если первый запуск функции, тоесть в начальной точке. |
| Автор: ano360 8.1.2007, 11:57 |
| vМедодом тыма выяснил, что быстрее всего работает stack |
| Автор: Дерзающий 8.1.2007, 15:31 | ||
Вот пример 3d матриц сам писал, работает, проверял. Аналогично для 2 и 1 мерных матриц. Сделай минимальным интерфейс и будет всё максимально быстро.
|
| Автор: stmamont 11.1.2007, 01:54 |
| ano360, stack - хорош только когда производишь операции типа pop , push. стэк - filo если нужен fifo то это queue, если же нужно выкидывать произволбные элементы наиболее быстро то это list если нужно только добавлять в конец - то это vector |