gpt4 book ai didi

c++ - 如何将任意大小的位集传递给函数?

转载 作者:塔克拉玛干 更新时间:2023-11-03 01:17:43 25 4
gpt4 key购买 nike

下面的程序可以正常编译。

#include <iostream>
#include <bitset>

void foo(std::bitset<10> n)
{
std::cout << n.size() << "\n";
}

int main()
{
std::bitset<10> n;
foo(n);
}
$ g++ -std=c++11 -Wall -Wextra -pedantic foo.cpp
$ ./a.out
10

如何修改 foo() 函数,使其可以接受任意大小的 bitset

最佳答案

这就是templates应该做的。所以用 non-type template parameter 使 foo 成为一个函数模板:

template<std::size_t N>
void foo(std::bitset<N> n)
{
std::cout << n.size() << "\n";
}

然后

std::bitset<10> n10;
foo(n10);
std::bitset<20> n20;
foo(n20);

关于c++ - 如何将任意大小的位集传递给函数?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43087374/

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