小编Ash*_*sha的帖子

在C++中使用未命名的命名空间

何时在C++中使用未命名的命名空间?在任何意义上它比独立功能更好吗?是否应该仅在源文件中使用而不在头文件中使用?

c++ namespaces

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

具有继承的静态块的行为

我试图使用这样的静态块:

我有一个基类叫 Base.java

public class Base {

    static public int myVar;

}
Run Code Online (Sandbox Code Playgroud)

派生类Derived.java:

public class Derived extends Base {

    static
    {
        Base.myVar = 10;
    }
}
Run Code Online (Sandbox Code Playgroud)

我的main功能是这样的:

public static void main(String[] args)  {
    System.out.println(Derived.myVar);
    System.out.println(Base.myVar);
}
Run Code Online (Sandbox Code Playgroud)

这打印输出0 0就像我预期的那样10 0.有人可以解释这种行为吗?另外,如果我希望我的派生类设置静态变量的值,我该如何实现呢?

java inheritance static static-block

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

是否允许在后缀运算符++中命名参数?

我没有在任何生产环境中使用此代码,这只是为了我的理解.这段代码是否有效(即我可以像这样定义我的postfix运算符吗?):

class A
{
public:
    A& operator++(int n)
    {
        std::cout<<"N is:"<<n<<"\n";
        return *this;
    }
};


int main()
{   
    A a;
    a++;
    a.operator ++(10);
}
Run Code Online (Sandbox Code Playgroud)

在VS2008上,我得到输出为:

N是0

第一次通话和

N是10

第二次通话

c++ operator-overloading

26
推荐指数
3
解决办法
417
查看次数

减少Java中的if-else语句

我有以下代码:

void f(String t)
{
  if(t.equals("a"))
  {
    someObject.setType(ObjectType.TYPE_A);
  }
 else if(t.equals("b"))
  {
    someObject.setType(ObjectType.TYPE_B);
  }

// 50 more similar code

}
Run Code Online (Sandbox Code Playgroud)

有没有简单的方法来重写if-else条件,以便没有那么多代码?

java refactoring if-statement conditional-statements

24
推荐指数
3
解决办法
5248
查看次数

联盟查找数据结构

对于许多问题,我看到推荐的解决方案是使用union-find数据结构.我试着阅读它并思考它是如何实现的(使用C++).我目前的理解是它只是一组集合.因此,要找到元素所属的集合,我们需要n*log n操作.当我们必须执行union时,我们必须找到需要合并的两个集合set_union并对它们进行处理.这对我来说看起来并不十分有效.我对这个数据结构的理解是正确的还是我错过了什么?

c++ data-structures union-find

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

存在引用时的赋值运算符和复制构造函数

我只是使用此代码试验参考:

class A
{
};

class B
{
public:
    B(A& a): m_a(a){}

    A& m_a;
};

int main()
{
    A a;
    B b(a);
    B b1 = b;
}
Run Code Online (Sandbox Code Playgroud)

我期待两者都B b1 = b;产生错误.相反,当我使用VS2008编译时,我只是收到警告

警告C4512:'B':无法生成赋值运算符

我理解为什么我会收到这个警告.但是编译器不应该为B b1 = b;语句生成错误吗?它就像它生成了复制构造函数但没有生成赋值运算符.这两者本身并不相互联系吗?当另一个无法生成时,为其中一个生成默认实现是否有意义?

c++ assignment-operator default-copy-constructor

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

如何使用std :: ref?

什么是正确的使用方法std::ref?我尝试在VS2010中使用代码并且它不能编译:

#include <vector>
#include <algorithm>
#include <iostream>
#include <functional>
using namespace std;
struct IsEven
{
    bool operator()(int n) 
    {
        if(n % 2 == 0)
        {
            evens.push_back(n);
            return false;
        }

        return true;
    }

    vector<int> evens;
};
int main(int argc, char **argv)
{
    vector<int> v;
    for(int i = 0; i < 10; ++i)
    {
        v.push_back(i);
    }

    IsEven f;
    vector<int>::iterator newEnd = remove_if(v.begin(), v.end(), std::ref(f));
    return 0;
}
Run Code Online (Sandbox Code Playgroud)

错误:

c:\ program files(x86)\ microsoft visual studio 10.0\vc\include\xxresult(28):error C2903:'result':symbol既不是类模板也不是函数模板

c:\ program files(x86)\ microsoft …

c++ stl c++11

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

如何从控制台读取空格分隔数字?

我正在尝试做一个简单的任务,从控制台读取空格分隔的数字到一个vector<int>,但我没有得到如何正确地做到这一点.

这是我到目前为止所做的事情:

int n = 0;
vector<int> steps;
while(cin>>n)
{
    steps.push_back(n);
}
Run Code Online (Sandbox Code Playgroud)

但是,这需要用户按下无效字符(例如a)来打破while循环.我不想要它.

一旦用户输入数字0 2 3 4 5和按下,Enter我希望循环被打破.我试着用istream_iteratorcin.getline也,但我无法得到它的工作.

我不知道用户将输入多少元素,因此我正在使用vector.

请建议正确的方法来做到这一点.

c++ iostream stl

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

vector :: max_size的实际用途

这个问题让我想到了课堂上的max_size方法vector.很明显,实际上矢量中包含的元素数量将远少于max_size返回的元素数量.所以我想知道这会有用吗?有线索吗?

c++ stl vector

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

远程调试托管应用程序

如何从具有visual studio的其他计算机远程调试托管应用程序.这是我尝试过的:

  1. 将Visual Studio中的远程调试文件夹复制到远程计算机并运行msvsmon.exe(64位版本,因为两台计算机都是64位).
  2. 在两台计算机中使用相同的Windows登录帐户.
  3. 然后我启动visual studio并使用attach进行处理.在传输中我选择"默认",在限定符中我给出msvsmon.exe运行的机器的主机名.
  4. 然后按"刷新"按钮查看该计算机上的进程列表.我可以看到另一方面它说"用户xyz已连接".但是,刷新失败,我得到以下错误: 错误屏幕

我在这做错了什么?我正在尝试使用VS2008 Pro和两个系统上的操作系统是Windows Server 2008 R2,如果重要的话.

注意:我可以使用远程传输调试非托管应用程序而不会出现任何问题.

.net c# debugging remote-debugging visual-studio

7
推荐指数
2
解决办法
4386
查看次数