gpt4 book ai didi

c++ - 如何在 C++ 中创建一个 Bitset 数组

转载 作者:行者123 更新时间:2023-12-01 14:43:11 25 4
gpt4 key购买 nike

我想创建一个 Bitset 数组。Binary Bitset(例如“100”,“1010”等)之后我想从用户输入并存储在 Bitset 中。我尝试了以下行,但显示错误。

#include<bits/stdc++> 
using namespace std;
int main()
{
int n,i;
string bit_string;
cin>>n // size of Bitset array.
bitset<8> brr[n];//
for(i=0;i<n;i++)
{
cin>>bit_string;
brr[i](bit_string);
}



return 0;
}

我想创建 n 个 8 位大小的位集。其中 n 由用户给出。我的输入是二进制字符串。“110010”,“001110”请帮忙

最佳答案

错误发生是因为您试图使用 n 创建 C 样式数组这不是编译时常量。如果不是 n 就不可能创建 C 风格的数组在编译时已知。

下面是做你想做的好方法

创建 std::vector<std::bitset<8>>拿着你的bitset<8> s, 如下。

请注意,代码会忽略输入字符串中多余的字符,例如 "111111110" (使其成为 "11111111" )并处理除 '1' 之外的任何字符好像是'0'如果输入字符串少于 8 个字符,代码将在默认情况下添加零 bitset

#include <vector>
#include <bitset>
#include <iostream>
int main() {
int n, i;
std::string bit_string;
std::cout << "Enter the size";
std::cin >> n; // size of Bitset array.
std::vector<std::bitset<8>> brr(n);//
for (i = 0; i < n; i++) {
std::cin >> bit_string;
for (int j{}; j < bit_string.size() && j < 8; ++j) {
brr[i][j] = (bit_string[j] == '1') ? 1 : 0;
}
}
//To test

for(auto const& el :brr)
{
for(int i{}; i < 8;)
std::cout << el[i++];
std::cout<<"\n";
}
}

参见 Why is "using namespace std;" considered bad practice?Why should I not #include <bits/stdc++.h>?

关于c++ - 如何在 C++ 中创建一个 Bitset 数组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60985499/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com