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

С++ для начинающих

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 9, средняя оценка - 4.89
Ko
-65 / 5 / 0
Регистрация: 23.12.2011
Сообщений: 247
#1

массив bool и вектор) - C++

12.09.2013, 10:39. Просмотров 1229. Ответов 22
Метки нет (Все метки)

Ребята всем привет)
ситуация такая скоро сегодня понадобиться написать такую штуку
у нас есть куча bool там их 1000000 значений
bool *array = new bool[1000000];
.... тут мы их подсасываем из файла и как мне их ребята вставить в vector<bool> array_vector;
и хочу вставить не по одному типа добавляя а есть какой ни будь метод сразу же запулить их все разом???
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.09.2013, 10:39
Здравствуйте! Я подобрал для вас темы с ответами на вопрос массив bool и вектор) (C++):

не работает bool xor(bool a, bool b) - C++
Учусь по &quot;Базовому курсу&quot; Герберта Шилда #include &lt;iostream&gt; bool xor(bool a, bool d); int main() { bool p, q; cout...

Изменить значение bool a = true в bool a = false - C++
// Логическое выражения - варианты #include &lt;iostream&gt; #include &lt;conio.h&gt; using namespace std; int main() { ...

как правильно понять тип bool ? bool true(const string &str) и что дает это значение ? - C++
задам может глупый вопрос, но прошу ответить. как правильно понять тип bool ? bool true(const string &amp;str) и что дает это...

Задан вектор X[20]. Положительные числа переписать в массив Y, а отрицательные в массив W - C++
Всем привет=) Помогите оформить правильно, фот наработка: for(int i = 0, j = 0, c = 0; i &lt; 20; i++) { if(x &lt; 0) { ...

Задан вектор X[20]. Положительные числа переписать в массив Y, а отрицательные в массив W - C++
Помогите с задачками 1.Задан вектор X. Положительные числа переписать в массив Y, а отрицательные в массив W. 2.Определить, сколько...

bool+bool=string - C++
Здравствуйте! Прошу помощи в задаче, существует 4 функции, возвращающие 1/0, нужно эти bool последовательно соединить в string. Т.е....

22
Ko
-65 / 5 / 0
Регистрация: 23.12.2011
Сообщений: 247
12.09.2013, 14:49  [ТС] #16
Секундочку SummerRain у нас массив) булов) их 1000000 как их вставить?

Добавлено через 1 минуту
у нас миллион массивов) по миллиону значений)

Добавлено через 20 секунд
у нас миллион массивов) по миллиону значений)

Добавлено через 1 минуту
нельзя же так прямо файл подать)
0
SummerRain
326 / 325 / 17
Регистрация: 16.12.2012
Сообщений: 544
12.09.2013, 14:54 #17
Ну тогда как-то так.
C++
1
2
3
4
5
std::copy(
        bit_array,
        bit_array + 1000000,
        std::back_inserter(myBitset)
    );
Может я не совсем понял то, что вам надо.
0
Ko
-65 / 5 / 0
Регистрация: 23.12.2011
Сообщений: 247
12.09.2013, 15:00  [ТС] #18
Цитата Сообщение от fatalis Посмотреть сообщение
А bitset не замеряли на скорость? Интересно бы сравнить
P.S А что это за задача с массивами 100000X100000?
самому интересно воспользоваться битсетом, но он мне как то не нравится, но я попробую протестирую, скажу сколько в памяти занимает и как по скорости себя ведёт, быстрей чаров то вряд ли будет. замерю вообще и отпишу сюда если кому интересно, а насчёт задачи то есть 1млн или 10млн объектов они скрещиваются и нужно записать в матрицу состояние, подходит или не подходит скрещивание. Делается несколько дней всё это дело. гонял Xeon Phi на этой задачи, не сильно конечно пока быстрые у интела аппараты.

Добавлено через 5 минут
C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
    int size_array = 2000;
    bool *array_ku = new bool[size_array];
 
    std::vector<std::bitset<100000> > aaa;
 
    std::copy(
        array_ku,
        array_ku + size_array,
        std::back_inserter(aaa)
        );
 
    cout << aaa.size() << endl;
 
    for (int i = 0; i < aaa.size(); i++ )
    {
        cout << "I: "<<i <<" "<< aaa[i][0] << endl;
    }
так вот получается двумерный массив первое измерение 2000 а второе 100000;
0
SummerRain
326 / 325 / 17
Регистрация: 16.12.2012
Сообщений: 544
12.09.2013, 15:03 #19
Цитата Сообщение от Ko Посмотреть сообщение
есть 1млн или 10млн объектов они скрещиваются и нужно записать в матрицу состояние, подходит или не подходит скрещивание
Может для этого стоит использовать разряжённые матрицы? Наверняка скрещивание происходит гораздо реже.
Поэтому с помощью этих матриц можно существенно сократить затраты по памяти и времени.
0
Ko
-65 / 5 / 0
Регистрация: 23.12.2011
Сообщений: 247
12.09.2013, 15:08  [ТС] #20
короче ребята) останавливаемся на vector <bool> )

Добавлено через 2 минуты
Цитата Сообщение от SummerRain Посмотреть сообщение
Может для этого стоит использовать разряжённые матрицы? Наверняка скрещивание происходит гораздо реже.
Поэтому с помощью этих матриц можно существенно сократить затраты по памяти и времени.
всё со всеми скрещивается) разряженные и не разряженные) всё это перебрал за 2 года, это не проблема что много памяти требуется, в принцепе можно использовать GPU но актуально только использовать последнии линейки кеплера они будут опережать расчёты если не будет громадной матрицы, кстати без матрицы тоже можно работать только скорость упадёт в 3 раза. к сожалению. спасибо.

Добавлено через 49 секунд
всё что требовалось мы добились, всем спасибо) пора подкрепиться)))))
0
SummerRain
326 / 325 / 17
Регистрация: 16.12.2012
Сообщений: 544
12.09.2013, 15:14 #21
Да нет, говорите у вас 1 млн объектов (интересно что за объекты?).
И я предполагаю, что вероятность скрещивания этих объектов гораздо меньше вероятности их НЕ скрещивания.
(Или даже наоборот).
Так вот, если это так, то можно оптимизировать вашу систему, используя разряжённые матрицы.
1
Ko
-65 / 5 / 0
Регистрация: 23.12.2011
Сообщений: 247
12.09.2013, 20:44  [ТС] #22
я тоже думал что можно, допустим предположим у меня просто массив 10000000 bool. я проанализировал данные и выявил что в результате конечном нулей в 50 раз больше, следовательно я пробывал делать сигментное заполнение а именно 1-54 656-756 и так далее где буллы у меня true, применив такую технику скорость сократилась где то на 50%, размер памяти где то в 9-10 раз уменьшился, а толку? vector <bool> пока лидирует))) я сейчас переписываю полностью всю программу для обычных процессоров, может в течении следующего года что и придумаю интересное для матриц, если есть книги интересные пожалуйста порекомендуйте, я прочту

Добавлено через 29 минут
Цитата Сообщение от SummerRain Посмотреть сообщение
Да нет, говорите у вас 1 млн объектов (интересно что за объекты?).
И я предполагаю, что вероятность скрещивания этих объектов гораздо меньше вероятности их НЕ скрещивания.
(Или даже наоборот).
Так вот, если это так, то можно оптимизировать вашу систему, используя разряжённые матрицы.
у меня 1000000 буллов)
0
Nekto
342 / 287 / 10
Регистрация: 23.03.2012
Сообщений: 838
13.09.2013, 12:47 #23
Цитата Сообщение от Ko Посмотреть сообщение
я тоже думал что можно, допустим предположим у меня просто массив 10000000 bool. я проанализировал данные и выявил что в результате конечном нулей в 50 раз больше, следовательно я пробывал делать сигментное заполнение а именно 1-54 656-756 и так далее где буллы у меня true, применив такую технику скорость сократилась где то на 50%, размер памяти где то в 9-10 раз уменьшился, а толку? vector <bool> пока лидирует))) я сейчас переписываю полностью всю программу для обычных процессоров, может в течении следующего года что и придумаю интересное для матриц, если есть книги интересные пожалуйста порекомендуйте, я прочту

Добавлено через 29 минут


у меня 1000000 буллов)
Размер массива статический? std::array попробуй еще.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
13.09.2013, 12:47
Привет! Вот еще темы с ответами:

Сформировать массив типа bool из массива типа char - C++
Доброго времени суток! После ввода элементов массива вылазит ошибка &quot;Необработанное исключение: System.NullReferenceException ... &quot;...

Класс "вектор" с конструкторами, позволяющими создать нулевой вектор и вектор с произвольным числом элементов - C++
Привет! Задача следующая. Нужно реализовать класс &quot;вектор&quot; с конструкторами, которые позволяют создать нулевой вектор и вектор с...

Массив и вектор - C++
Не могу понят почему не работает данный код. Точнее оно работало правильно. Но перестал работать. Ввел малозначительные изменение перестал...

Вектор и Массив - C++
Уважаемые! Пошел на курсы учиться С++, но из за завала на работе пропустил много занятий и теперь проблемы с пониманием материала. Если...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
23
Yandex
Объявления
13.09.2013, 12:47
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru