小编use*_*028的帖子

使用仅标头库的正确方法是什么?

我对如何正确使用仅标头库感到困惑。谷歌搜索没有帮助,因为我没有找到任何关于使用仅标头库的信息。

所以我的问题是:我应该只复制头文件并将它们粘贴到我的项目文件夹中并以这种方式使用它们,还是应该使用 C\C++ >> General >> Additional Include Directories 将它们链接到项目?

c++ visual-studio header-only

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

这种计算大数的方式如何工作?

通常,要处理超出C++中long long范围的整数,您必须将它们表示为字符串并以这种方式对它们执行操作.但是,我在互联网上发现这个代码似乎像魔术一样.它计算两个幂的总和(没有2 ^ 0),即使它不能存储在很长的长度中.

#include <iostream>  
#include <cmath>  
#include <iomanip>  
#include <sstream>  
using namespace std;

int main() {
    int n;
    stringstream ss;
    cin >> n;

    ss << fixed << setprecision(0) << pow(2, n + 1) - 2;

    if (n >= 54) {
        string a = ss.str();

        a[a.size() - 1] = ((a[a.size() - 1] - 48) - 2) + 48;

        cout << a;
        return 0;
    }

    cout << ss.str();

}
Run Code Online (Sandbox Code Playgroud)

它是如何工作的?它适用于涉及大量的任何操作吗?如果n的值非常大(我试过1024)它只打印"inf".可以这种方式计算的数字范围的上限是多少?

以下部分到底做了什么以及它为什么这样做?

a[a.size() - 1] = ((a[a.size() - 1] - 48) …
Run Code Online (Sandbox Code Playgroud)

c++ largenumber stringstream

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

什么是C ++的Java通配符?

在Java中,如果您有类似的类:

class Box<E>
{
    some code
}
Run Code Online (Sandbox Code Playgroud)

您可以使用通配符执行以下操作:

Box<?> someBox;
someBox = new Box<Integer>();
someBox = new Box<Double>();
Run Code Online (Sandbox Code Playgroud)

有没有办法在C ++中做到这一点?

用更好的话来说,如何在C ++中声明一个可以包含Box<Integer>or Box<Double>或or 的变量Box<WhateverDataTypeHere>

c++ generics templates

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