相关疑难解决方法(0)

错误:未在此范围内声明'INT32_MAX'

我收到了错误

error: 'INT32_MAX' was not declared in this scope
Run Code Online (Sandbox Code Playgroud)

但我已经包括在内了

#include <stdint.h>
Run Code Online (Sandbox Code Playgroud)

我正在使用命令编译(g ++(GCC)4.1.2 20080704(Red Hat 4.1.2-44))

g++ -m64 -O3 blah.cpp
Run Code Online (Sandbox Code Playgroud)

我需要做任何其他事情才能编译吗?还是有另一种C++方式来获取常量" INT32_MAX"?

谢谢,如果有什么不清楚,请告诉我!

c++

30
推荐指数
4
解决办法
5万
查看次数

是否可以将std :: accumulate与std :: min一起使用?

我想和之std::accumulate合作std::min.像这样的东西(不会编译):

vector<int> V{2,1,3};   
cout << accumulate(V.begin()+1, V.end(), V.front(), std::min<int>);
Run Code Online (Sandbox Code Playgroud)

可能吗?是否可以不编写包装函数std::min
我知道我可以用lambdas做到这一点:

vector<int> V{2,1,3};   
cout << std::accumulate(
    V.begin()+1, V.end(),
    V.front(), 
    [](int a,int b){ return min(a,b);}
);
Run Code Online (Sandbox Code Playgroud)

而且我知道有std::min_element.我不是要找到min元素,我需要std::accumulate和我的库结合std::min(或::min),它允许像C++中的表达式一样进行函数编程.

c++ stl accumulate

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

我怎样才能在xcode中包含<bits/stdc ++>

我试图在我的c ++代码中包含头文件位/ stdc ++,但似乎编译器不支持它,有没有办法让它工作?

我使用OS X Yosemite 10.10.2和Xcode 6.1.1

c++ macos xcode

19
推荐指数
5
解决办法
3万
查看次数

错误:将'const ...'传递为'...'的'this'参数会丢弃限定符

错误:将'const A'作为'void A :: hi()'的'this'参数传递,丢弃限定符[-fpermissive]

我不明白为什么我得到这个错误,我没有返回任何东西只是传递对象的引用,就是这样.

#include <iostream>

class A
{
public:
    void hi()
    {
        std::cout << "hi." << std::endl;
    }
};

class B
{
public:
    void receive(const A& a) {
        a.hi();
    }
};

class C
{
public:
    void receive(const A& a) {
        B b;
        b.receive(a);
    }
};

int main(int argc, char ** argv)
{
    A a;
    C c;
    c.receive(a);

    return 0;
}
Run Code Online (Sandbox Code Playgroud)

@编辑

我使用const正确性修复它但现在我试图在同一个方法中调用方法并得到相同的错误,但奇怪的是我没有传递对此方法的引用.

#include <iostream>

class A
{
public:
    void sayhi() const
    {
        hello();
        world();
    }

    void hello() …
Run Code Online (Sandbox Code Playgroud)

c++

14
推荐指数
1
解决办法
6万
查看次数

找到包含 200000+ 个元素的 2 个数组元素的最小乘积的最快方法

我有一个数组a[n]。号码n是我们输入的。我需要找到的最小的产品a[i]a[j]如果:

1) abs(i - j) > k

2)a[i] * a[j]最小化

这是我的解决方案(非常幼稚):

#include <iostream>
using namespace std;
#define ll long long
int main() {
    ll n,k; cin >> n >> k;

    ll a[n]; for(ll i=0;i<n;i++) cin >> a[i];

    ll mn; bool first = true;

    for(ll i=0;i<n;i++) {
        for(ll j=0;j<n;j++) {
            if(i!=j)
            if(abs(i-j) > k) {
                if(first) {
                    mn = a[i]*a[j];
                    first = false;
                } else if(a[i]*a[j] < mn) mn = a[i]*a[j]; …
Run Code Online (Sandbox Code Playgroud)

c++ algorithm optimization minimum

13
推荐指数
2
解决办法
1156
查看次数

如何以递归方式思考?

为了理解贪婪方法和动态编程等高级算法概念,首先需要精通递归.

我对递归比较新.每当提出问题时,首先要记住的是使用迭代的解决方案.即使我知道递归方法的含义及其工作方式,但很难以递归方式进行思考.

请回答以下问题,以帮助解决问题:

1)任何迭代方法都可以用递归代替,反之亦然吗?

例如,如何以递归方式打印大小为n的数组中的元素?

for i 0 to n
 Print a[i]
Run Code Online (Sandbox Code Playgroud)

2)如何递归地解决问题?步骤是什么?是否有任何提示可以确定问题可以递归解决?

例如:如果要求打印出字符串的所有子字符串

INPUT: CAT
OUTPUT: CAT,CA,A,AT,T
Run Code Online (Sandbox Code Playgroud)

我可以快速提出迭代方法.使用两个循环可以解决问题.

但递归地如何解决它.如何识别问题可以递归解决.

如果回答我的第一个问题是肯定的,使用两次递归而不是迭代可以解决我的问题?

3)任何人都可以建议我一些材料/资源来彻底理解递归的概念吗?

string iteration algorithm recursion tail-recursion

12
推荐指数
3
解决办法
8008
查看次数

如何计算整数中的零位数?

我将如何在C++中找到"零"位的数量.假设我有一个整数;

int value = 276; 
Run Code Online (Sandbox Code Playgroud)

我有100010100位,但我如何计算零?

c++ bits

11
推荐指数
6
解决办法
3万
查看次数

typeid(var).name() 的输出“PKc”是什么意思?

当提供- 变量在哪里-作为参数时,我得到 PKc的输出typeid(check).name()checkchartypeid.name()

#include<bits/stdc++.h>
using namespace std;
main()
{ 
    char check='e';
   cout<<typeid(check).name()<<"\n";
   cout<<typeid(typeid(check).name()).name();
}
Run Code Online (Sandbox Code Playgroud)

输出

c
PKc
Run Code Online (Sandbox Code Playgroud)

check即使将from的类型更改为 charto也能得到它double

#include<bits/stdc++.h>
using namespace std;
main()
{ 
    double check=69.666;
   cout<<typeid(check).name()<<"\n";
   cout<<typeid(typeid(check).name()).name();

}
Run Code Online (Sandbox Code Playgroud)

输出

d
PKc
Run Code Online (Sandbox Code Playgroud)

PS @AsteroidsWithWings 建议的解决方案确实提供了基本概念的框架,但没有具体回答“PKc”的含义。

c++ visual-studio-code

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

STL中的Union-Find(或Disjoint Set)数据结构?

我本来期望这样一个有用的数据结构被包含在内,C++ Standard Library但我似乎无法找到它.

c++ stl disjoint-sets union-find

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

如何确定要包括的头文件?

说我有以下(非常简单)的代码。

#include <iostream>
int main() {
    std::cout << std::stoi("12");
}
Run Code Online (Sandbox Code Playgroud)

这在g ++和clang上都可以编译。但是,它无法在MSVC上编译,并出现以下错误:

错误C2039:“ stoi”:不是“ std”的成员

错误C3861:“ stoi”:找不到标识符

我知道这std::stoi<string>标头的一部分,大概前两个编译器作为标头的一部分<iostream>而后者不包含。根据C ++标准[res.on.headers]

C ++标头可以包括其他C ++标头。

对我来说,这基本上说所有三个编译器都是正确的。

当我的一个学生提交作业时,这个问题就出现了,TA标记为未编译。我当然去修理了。但是,我想防止将来发生此类事件。因此,有没有一种方法可以确定应该包括哪些头文件,而无需在每次检查的三个不同编译器上进行编译?

我能想到的唯一方法是确保对于每个std函数调用都存在一个适当的include。但是,如果您现有的代码长数千行,则搜索起来可能很乏味。有没有更简单/更好的方法来确保交叉编译器的兼容性?

三种编译器的示例:https : //godbolt.org/z/kJhS6U

c++

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