小编H-0*_*005的帖子

在编译时生成素数

我对如何在编译时生成素数数组很感兴趣(我相信唯一的方法是使用元编程(在 C++ 中,不确定它在其他语言中是如何工作的))。

快速说明,我不想只说int primes[x] = {2, 3, 5, 7, 11, ...};,因为我想在竞争性编程中使用这种方法,其中源文件不能大于10KB。所以这排除了任何超过几千个元素的预生成数组。

例如,我知道您可以在编译时生成斐波那契数列,但这相当容易,因为您只需添加最后 2 个元素。对于素数,我真的不知道如何在没有循环的情况下做到这一点(我相信这是可能的,但我不知道如何,我猜是使用递归),而且我不知道如何在编译时评估循环-时间。

所以我正在寻找一个关于如何解决这个问题的想法(至少),甚至可能是一个简短的例子

c++ primes metaprogramming compile-time

8
推荐指数
2
解决办法
234
查看次数

为什么在初始化 std::vector 时不能使用模板整数?

我正在尝试创建一个类 BigInt,其中包含一个带有 D 元素的 std::vector。

template<int D>
class BigInt
{
    public:
        std::vector<short> digit(D, 0);
};
Run Code Online (Sandbox Code Playgroud)

我收到一条错误消息,指出“D”不是一种类型

c++ templates initialization class vector

2
推荐指数
1
解决办法
45
查看次数

如何重载 &lt;&lt; 运算符使其仅影响类的成员?

我有一个Bitset存储 a vectorof chars的类,我希望能够在我使用cout << char时将它char转换为一个 short int ,前提是它是该类的一部分。

代码:

模板<长长X>
类位集
{
    公共:std::vector<unsigned char> bit = std::vector<unsigned char> ((X+7)/8);

    民众:
        /* 构造函数 */

        朋友 std::ostream &operator<< (std::ostream &output, const char x);
};

std::ostream &operator<< (std::ostream &output, const char x)
{
    输出<<(短)(x);
    返回输出;
}

这个想法是,如果我写:

位集 a;
/* 代码 */
cout << a.bit[x];
cout<<'a';

我想投a.bit[x]成一个短,但不是'a'那么好。

c++ casting class operator-overloading char

1
推荐指数
1
解决办法
112
查看次数

为什么不能访问在声明范围之外用 new 声明的变量?

我知道这是一个愚蠢的问题,我无法理解我是如何陷入困境的,但我在这里。在这段代码中,当我尝试在它声明的范围之外访问x 时(在堆上声明),它告诉我x 未在此范围内声明

{
    int * x = new int;
}
*x = 5; /// Error
Run Code Online (Sandbox Code Playgroud)

我以前从未遇到过这个问题。在我打电话之前x不应该存在delete x;吗?

c++ pointers scope heap-memory

1
推荐指数
1
解决办法
120
查看次数

std::vector::reserve 实际上是如何工作的?

据我所知,.reserve()为向量保留内存而不实际修改其大小。但这是如何实现的呢?如何只保留内存而不分配内存呢?

编辑:我具体询问如何保留内存而不分配内存,而不是std::vector一般如何工作

c++ vector stdvector dynamic-memory-allocation c++11

1
推荐指数
1
解决办法
2176
查看次数

你可以只用键创建 std::map 吗?

所以,我想用它std::map来查找元素是否存在。所以我基本上只需要密钥,不需要任何值。

有什么办法可以做类似的事情std::map<std::string, void>吗?或者std::map对于这种东西有更好的选择吗?

最坏的情况是std::vector<std::string>可以使用不同的容器,但我很好奇您是否可以使用std::map(std::map<std::string, bool>也可以使用,但 bool 会浪费内存)。

c++ containers dictionary stl

0
推荐指数
1
解决办法
47
查看次数