Форум программистов, компьютерный форум CyberForum.ru

Структуры данных для хранения и работы с матрицами - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ Изменение формы http://www.cyberforum.ru/cpp-beginners/thread936034.html
Подскажите пожалуйста как создаются такие формы?
C++ многопоточность приложения есть код #include <windows.h> #include <locale.h> #include <stdio.h> #include <stdlib.h> int main() { http://www.cyberforum.ru/cpp-beginners/thread936020.html
C++ Начать работу с Active Directory
Доброго времени суток, уважаемые программисты! Хочу попробовать попогремировать на тему AD, с++, CodeBlocks - vs недоступна. Подскажите, пожалуйста, что необходимо инклудить? #include <windows.h>, #include <activeds.h>.. С последним проблемы, хотя в системных папках соответствующая длл есть. И в папку проекта бросал ее, не помогает. Что и немаловажно как! надо подключить, чтобы начать...
Как передать функции через метод класса C++
Добрый вечер всем! Столкнулся с проблемкой К примеру у меня есть 3 функции.Я хочу в 4 функцию дать массив названий этих 3 функций,чтобы распределять в каких моментах их использовать.Ну вот как-то так объяснил) К примеру у меня есть класс Меню в консоли.Я методом задаю список меню самого.Отдельно пишу функции,которые будут выполняться по нужному списку меню,и в еще одном методом,передаю...
C++ что за тема такая to-do list? http://www.cyberforum.ru/cpp-beginners/thread935955.html
объясните плиз что это такое(ну смысл типо список дел?), точнее как этим грамотно пользоваться?
C++ Упражнение из книги Страуструпа для начинающих. Точность вычислений Добрый вечер. В конце одной из глав идёт след. упражнение: Модифицируйте класс Fct так, чтобы в нём был дополнительный аргумент, позволяющий контролировать точность. Сделайте тип этого аргумента шаблонным параметром, чтобы повысить гибкость класса. Как понять "контролировать точность"? Подскажите, пожалуйста, что же имелось ввиду. Вот имеющийся код (класс Function): ... подробнее

Показать сообщение отдельно
miramentis
3 / 0 / 0
Регистрация: 04.08.2013
Сообщений: 25
10.08.2013, 19:55  [ТС]     Структуры данных для хранения и работы с матрицами
Цитата Сообщение от Praktolock Посмотреть сообщение
Могу ошибаться, но лично мое мнение - если нужно максимальное быстродействие, то нужно все делать вручную, без использования стандартных контейнеров. И не получится сделать чтобы и работало шустро и память экономилась.
Вместо erase() у битсета можно использовать сдвиги в комбинации с операторами &. Не так уж сложно на самом деле реализовать это всё без векторов

Добавлено через 1 минуту
В принципе, есть же масса различных специализированных библиотек для работы с матрицами, еслми не охота ничего изобретать, просто погугли немого
спасибо за информацию про свиги.
что вы скажете про такой способ удалить элемент (а, точнее переместить его в хвост битсета)?
C++
1
2
3
4
    boost::dynamic_bitset<> mask(col,0ul);
    for(int i=0;i<del;i++)
        mask[i]=1;
    row=(mask.flip()&(row>>1))|(row&mask);
Добавлено через 40 минут
Цитата Сообщение от salam Посмотреть сообщение
во-первых, никогда не пишите константы в O-обозначениях. это безграмотно.
во-вторых, сложность будет квадратичной все равно. кто вам сказал, что удаление выполняется за 1?

Добавлено через 2 минуты
moving не позволит вам удалять константно. потому я и говорил о копировании.
спасибо за информацию. буду знать теперь.

Добавлено через 1 час 33 минуты
думаю, что удалять таким методом - очень и очень долго...
такой вот код:
C++
1
2
3
4
5
6
7
8
9
10
11
std::vector< boost::dynamic_bitset<> > Matrix(row,boost::dynamic_bitset<>(col,0));
... (заполняем матрицу)
int col_new=col;
for(int i=0;i<col_new;i++)
    if(Base[i][1]!=1){
        boost::dynamic_bitset<> mask(col,0ul);
        for(int j=0;j<i;j++) mask[j]=1;
        for(int r=0;r<row;r++)
            Matrix[r]=(Matrix[r]&mask.flip())|(mask.flip()&(Matrix[r]>>1));
        i--; col_new--;
    }
при
row = 87
col = 2589

работает где-то 2 секунды
 
Текущее время: 03:37. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru