小编huf*_*uff的帖子

C++我的第一个模板

好的,这是避免歧义的最佳方法吗?

template <class T>
inline void swap(T &a, T &b)
{
    T c; c = a; a = b; b = c;
}
/* blah blah blah (inside of a function:) */
for (itv = vals.begin(); itv != vals.end(); ++itv)
{
    if (at < (*itv)) { swap(at, (*itv)); }
    if (at % (*itv) == 0) atadd = false;
}
/* blah blah blah */
Run Code Online (Sandbox Code Playgroud)

使用交换调用也不起作用,因为它说无法解决它是否是"void swap(T&,T&)","void std :: swap(_Ty&,_ Ty&)"或......

顺便说一下,itv是一个vector <int> :: iterator.

谢谢.

c++ templates ambiguity

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

C++'this'和运算符重载

我想知道如何使用运算符和'this'.举一个例子:

class grd : clm
{ 
    inline int &operator()(int x, int y) { return g[x][y]; }
    /* blah blah blah */ 
};

grd grd::crop(int cx1, int cy1, int cx2, int cy2)
{
    grd ngrd(abs(cx1-cx2), abs(cy1-cy2));
    int i, j;
    //
    for (i = cx1; i < cx2; i++)
    {
        for (j = cy1; j < cy2; j++)
        {
            if (i >= 0 && i < x && j >= 0 && j < y)
                ngrd(i-cx1,j-cy2) = ?? // this->(i,j); ****
        } …
Run Code Online (Sandbox Code Playgroud)

c++ operator-overloading this

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

C++运算符重载示例

好吧,我是操作员重载的新手,我发现了这个问题.我宁愿问你:D.而不是记录自己

关键是,我知道如何进行简单的运算符重载,但我遇到了堆栈运算符的问题.我将尝试举一个相对简单的例子:

struct dxfdat
{
 int a;
 string b;

 /* here is the question */
}

/* use: */
dxfdat example;

example << "lalala" << 483 << "puff" << 1029 << endl;
Run Code Online (Sandbox Code Playgroud)

"lalala" << 483 << "puff" << 1029 << endl应存储在b.

dxfdat& operator<< (T a)这样的事情可以使用一个参数(example << 7),但我希望它以一种cout方式工作.

抱歉这么懒.

编辑:

真实的......好吧,它有点棘手......实际上,b不是一个字符串,而是一个其他对象的矢量,example << "lalala" << 483 << "puff" << 1029 << endl应该只创建一个对象.

这就是我正在尝试(翻译),虽然我不知道如何告诉它何时创建对象(因为它从左到右,不是吗?):

struct dxfDato
{
    dxfDato(int c = 0, string v …
Run Code Online (Sandbox Code Playgroud)

c++ operator-overloading

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

带静态Map的空指针异常

现在是早上5点,我有点睡着了,所以可能就是这样(我对Java也相对较新).但我不明白为什么这段代码会生成Null Exception.那时应该初始化地图,不应该吗?

private static final Map<String, Integer> CONDS_MAP = 
    Collections.unmodifiableMap
    (
        new HashMap<String, Integer>()
            {{ 
                put("null", 0);
                put("false", 0);
                put("true", 1);
                put("numElems.lt", 2);
                put("NELT", 2);
                put("numElems.gt", 3);
                put("NEGT", 3);
            }}
    );

private int getCodeInt(Object code)
{
    if (code.getClass() == String.class)
    {
        return CONDS_MAP.get((String)code); // Null Exception here
    }
    else
    // (... etc etc)
}
Run Code Online (Sandbox Code Playgroud)

谢谢!对不起它太琐碎了......

java static initialization exception

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