С Новым годом! Форум программистов, компьютерный форум, киберфорум
Наши страницы

Упаковка std :: vector <bool> в байты - C++

Войти
Регистрация
Восстановить пароль
Другие темы раздела
C++ Проблема с перегрузкой операторов "+" и "+=" для классов Point и Circle http://www.cyberforum.ru/cpp-beginners/thread1182914.html
Есть класс Point (элементы данных x,y) и класс Circle (элементы данных р(типа Point),r). Их заголовочные файлы: class Point { private: double x, y; public: Point(); Point(double a,...
C++ Копировать элемент из массива в массив У меня есть два динамические массивы skydiver **mas=new skydiver* skydiver **masinplane=new skydiver* Первый массив содержит следующие элементы. mas=new... http://www.cyberforum.ru/cpp-beginners/thread1182913.html
Описать класс, реализующий тип данных "вещественная матрица" C++
Задание: Описать класс, реализующий тип данных "вещественная матрица" и работу с ними. Класс должен реализовывать следующие операции над матрицами: 1. Методы, реализующие проверку типа матрицы...
C++ Для знающих. Создаю меню в Borland C++, но что-то не работает, кто подскажет.что не так
Файл с программой прилагается. меню из 4 пунктов но почему то не отображает их, кто сможет исправьте и отправите правильный вариант. Заранее спасибо
C++ Динамический массив и объекты в нем, полиморфизм http://www.cyberforum.ru/cpp-beginners/thread1182888.html
У меня есть два динамические массивы skydiver **mas=new skydiver* skydiver **masinplane=new skydiver* Первый массив содержит следующие элементы. mas=new...
C++ Дайте совет по продолжению обучения Сейчас учусь на первом курсе комп.инженерии.Уже прошли делфи- сечас группа учит С++, а мне этот язык показался очень интересным и я усердно его изучаю !).. Пока группа только начинает учить массиви... подробнее

Показать сообщение отдельно
outoftime
║XLR8║
511 / 433 / 33
Регистрация: 25.07.2009
Сообщений: 2,295
21.05.2014, 13:16
newbie666, mishkazzz, не спешите господа.

Если нужно только 8 бит использовать, но можно либо создать свой тип либо класс для этого. Доступ к битам осуществляется как и у вектора, так что логику не поломает.

C++
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
#include <iostream>
#include <bitset>
 
typedef std::bitset<8> byte1;
 
class byte2 : public std::bitset<8> {
public:
    uint8_t getByte() const {
        return static_cast<uint8_t>(this->to_ulong());
    }
};
 
int main () {
    byte1 b1;
    byte2 b2;
    b1[7] = true;
    b2[7] = true;
    std::cout << static_cast<uint8_t>(b1.to_ulong()) << ' ' << b2.getByte() << '\n';
}
Только с классом можно сразу определить методы ввода\вывода в файл или поток.
1
 
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.