Как мне установить bitset для переменной с целочисленным именем - PullRequest
0 голосов
/ 23 октября 2019

Я хочу установить битовый набор символов '0' равным 0101010101, но при попытке получить сообщение об ошибке "Ожидается идентификатор"

#include <iostream>
#include <string>
#include <bitset>
using namespace std;
int main() {
bitset<8> '0'=0101010101;
}

Я также пытался

bitset <8> 0(string("0101010101"));

но я получаю ту же ошибку

Ответы [ 2 ]

0 голосов
/ 23 октября 2019

0 - это литерал типа int, а '0' - это символ-символ, ни один из которых не является именем переменной. Вы можете использовать _0 в качестве имени переменной. Или даже лучше использовать имя, которое описывает, для чего используется переменная.

0 голосов
/ 23 октября 2019

Вы можете использовать unordered_map, чтобы установить однозначное отображение между int и bitset. Длина семпла 0101010101 равна 10, поэтому размер набора битов будет 10, а 0101010101 = 341 в десятичном виде.

#include <iostream>
#include <unordered_map>
#include <bitset>

std::unordered_map<int, std::bitset<10>> M {
    {0, 341},
    {1, ...},
    ...
    ...
    ...
};

int main()
{
    std::cout << M[0] << std::endl;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...