标签: operator-keyword

Python设置"in"运算符:使用相等或身份?

class A(object):
    def __cmp__(self):
        print '__cmp__'
        return object.__cmp__(self)

    def __eq__(self, rhs):
        print '__eq__'
        return True
a1 = A()
a2 = A()
print a1 in set([a1])
print a1 in set([a2])
Run Code Online (Sandbox Code Playgroud)

为什么第一行打印为True,但第二行打印为False?既不进入运营商eq

我使用的是Python 2.6

python identity equality set operator-keyword

32
推荐指数
3
解决办法
7843
查看次数

XPath运算符"!=".它是如何工作的?

XML文档:

<doc>
    <A>   
        <Node>Hello!</Node>   
    </A> 

    <B>     
        <Node/>
    </B>  

    <C>
    </C>

    <D/>
</doc>
Run Code Online (Sandbox Code Playgroud)

您将如何评估以下XPath查询?

/doc/A/Node != 'abcd'  
/doc/B/Node != 'abcd'  
/doc/C/Node != 'abcd'  
/doc/D/Node != 'abcd'  
Run Code Online (Sandbox Code Playgroud)

我希望所有这些都能评估为.

但是,结果如下:

/doc/A/Node != 'abcd'     true
/doc/B/Node != 'abcd'     true
/doc/C/Node != 'abcd'     false
/doc/D/Node != 'abcd'     false
Run Code Online (Sandbox Code Playgroud)

这是预期的行为吗?或者它是我的XPath提供程序(jaxen)的错误?

xpath equals operator-keyword

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

C中没有其他三元运算符

我想在C中没有使用三元运算符.我该怎么做.

(a)? b: nothing;
Run Code Online (Sandbox Code Playgroud)

这样的事情.我什么都没用?

c if-statement ternary operator-keyword

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

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

用于堆上内存分配的新运算符

我正在看新操作员的签名.这是:

void* operator new (std::size_t size) throw (std::bad_alloc);
Run Code Online (Sandbox Code Playgroud)

但是当我们使用这个运算符时,我们从不使用强制转换.即

 int *arr = new int;
Run Code Online (Sandbox Code Playgroud)

那么,如何C++类型的指针转换void*int*在这种情况下.因为,即使malloc返回a void*,我们也需要明确使用强制转换.

c++ memory-management new-operator dynamic-memory-allocation operator-keyword

28
推荐指数
2
解决办法
9567
查看次数

运算符==不能应用于Kotlin中的'Long'和'Int'

我正在尝试在Kotlin中实现Mike Penz的NavigationDrawer(https://github.com/mikepenz/MaterialDrawer)的部分内容.从那以后,我遇到了一些问题,主要是运营商.以下是实例化抽屉本身的代码的一部分.Android Studio不会抛出任何错误,除非我在int和Long变量上使用==运算符:

        // Create the Drawer
        result = DrawerBuilder()
                .withSliderBackgroundColor(ContextCompat.getColor(applicationContext, R.color.top_header))
                .withActivity(this)
                .withToolbar(toolbar)
                .withHasStableIds(true)
                .withItemAnimator(AlphaCrossFadeAnimator())
                .withAccountHeader(headerResult!!)
                .addDrawerItems(
                        PrimaryDrawerItem().withName(R.string.drawer_item_profile).withIcon(FontAwesome.Icon.faw_user).withIdentifier(1).withSelectable(false).withIconColor(ContextCompat.getColor(applicationContext, R.color.icon_grey)).withTextColor(ContextCompat.getColor(applicationContext, R.color.stroke)),
                        PrimaryDrawerItem().withName(R.string.drawer_item_create).withIcon(FontAwesome.Icon.faw_paint_brush).withIdentifier(2).withSelectable(false).withIconColor(ContextCompat.getColor(applicationContext, R.color.icon_grey)).withTextColor(ContextCompat.getColor(applicationContext, R.color.stroke)),
                        PrimaryDrawerItem().withName(R.string.drawer_item_yaanich_news).withIcon(FontAwesome.Icon.faw_newspaper_o).withIdentifier(3).withSelectable(false).withIconColor(ContextCompat.getColor(applicationContext, R.color.icon_grey)).withTextColor(ContextCompat.getColor(applicationContext, R.color.stroke)),
                        PrimaryDrawerItem().withName(R.string.drawer_item_my_groups).withIcon(FontAwesome.Icon.faw_users).withIdentifier(4).withSelectable(false).withIconColor(ContextCompat.getColor(applicationContext, R.color.icon_grey)).withTextColor(ContextCompat.getColor(applicationContext, R.color.stroke)),
                        PrimaryDrawerItem().withName(R.string.drawer_item_settings).withIcon(FontAwesome.Icon.faw_cog).withIdentifier(5).withSelectable(false).withIconColor(ContextCompat.getColor(applicationContext, R.color.icon_grey)).withTextColor(ContextCompat.getColor(applicationContext, R.color.stroke))
                )
                .withOnDrawerItemClickListener { view, position, drawerItem ->

                    if (drawerItem != null) {
                        var intent: Intent? = null
                        if (drawerItem.identifier == (1) {
                            intent = Intent(this, UserProfileActivity::class.java)
                        } else if (drawerItem.identifier == 2) {
                            intent = Intent(this, YeetActivity::class.java)
                        } else if (drawerItem.identifier == 3) {
                            intent …
Run Code Online (Sandbox Code Playgroud)

android operator-keyword kotlin

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

c ++ operator <<的多个定义

我试图覆盖<<一个类的运算符.目的基本上是toString()为我的类实现类似的行为,因此发送它将cout产生有用的输出.使用一个虚拟示例,我有下面的代码.当我尝试编译时,我得到了一个愚蠢的错误:

$ g++ main.cpp Rectangle.cpp
/tmp/ccWs2n6V.o: In function `operator<<(std::basic_ostream<char, std::char_traits<char> >&, CRectangle const&)':
Rectangle.cpp:(.text+0x0): multiple definition of `operator<<(std::basic_ostream<char, std::char_traits<char> >&, CRectangle const&)'
/tmp/ccLU2LLE.o:main.cpp:(.text+0x0): first defined here
Run Code Online (Sandbox Code Playgroud)

我无法弄清楚为什么会这样.我的代码如下:

Rectangle.h:

#include <iostream>
using namespace std;

class CRectangle {
    private:
        int x, y;
        friend ostream& operator<<(ostream& out, const CRectangle& r);
    public:
        void set_values (int,int);
        int area ();
};

ostream& operator<<(ostream& out, const CRectangle& r){
    return out << "Rectangle: " << r.x << ", " << r.y;
} …
Run Code Online (Sandbox Code Playgroud)

c++ overriding iostream operator-keyword

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

在typedef结构中重载运算符(c ++)

我想创建一个名为pos(从位置)的typedef结构来存储坐标x和y.我试图为这个结构重载一些运算符,但它不编译.

typedef struct {
    int x;
    int y;

    inline pos operator=(pos a) {
        x=a.x;
        y=a.y;
        return a;
    }

    inline pos operator+(pos a) {
        return {a.x+x,a.y+y};
    }

    inline bool operator==(pos a) {
       if (a.x==x && a.y== y)
          return true;
       else
          return false;
    }
} pos;
Run Code Online (Sandbox Code Playgroud)

我也想知道这个之间的区别:

inline bool operator==(pos a) {
    if(a.x==x && a.y== y)
       return true;
      else
       return false;
}
Run Code Online (Sandbox Code Playgroud)

还有这个:

bool operator==(pos a) const {
      if(a.x==x && a.y== y)
         return true;
      else
         return false;
}
Run Code Online (Sandbox Code Playgroud)

c++ struct typedef operator-keyword

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

PostgreSQL IN运算符,子查询性能不佳

与子查询一起使用时,为什么"IN"运算符这么慢?

select * 
from view1 
where id in (1,2,3,4,5,6,7,8,9,10) 
order by somedata;
Run Code Online (Sandbox Code Playgroud)

在9ms内执行.

select * 
from view1 
where id in (select ext_id 
             from aggregate_table 
             order by somedata limit 10) 
order by somedata;
Run Code Online (Sandbox Code Playgroud)

在25000ms内执行并且似乎在view(view1)上使用顺序扫描,而不是像在第一个查询中那样在子查询返回的主键上使用索引扫描.

子查询select ext_id from aggregate_table order by somedata limit 10在0.1ms内执行

所以第二个查询的缓慢是由顺序扫描引起的,在view1该扫描中,每个UNION中包含三个UNIONS和大约三个JOINS的视图.第一个UNION包含大约1M行,其他更少.连接有大约100K行的表.但这并不是那么相关,我只想了解IN运算符的行为.

我想要完成的是获取子查询(一组主键)的结果,并view1使用它们从复杂视图()中选择数据.

我也不能用

select v1.* 
from view1 v1, 
     aggregate_table at 
where v1.id = at.ext_id 
order by at.somedata 
limit 10
Run Code Online (Sandbox Code Playgroud)

因为我不想对大联盟进行排序somedata.我只想从主键视图中选择10个结果,然后只对它们进行排序.

问题是为什么当我明确列出这些键时IN运算符执行速度很快,而当我使用返回完全相同的键集的快速子查询时速度很慢?

根据要求解析分析

第一个查询 - select * from view1 …

postgresql performance rdbms operator-keyword

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

将运算符作为参数传递

我想要一个评估2个bool变量的函数(比如真值表)

例如:

以来

T | F:T

然后

myfunc('t', 'f', ||);  /*defined as: bool myfunc(char lv, char rv, ????)*/
Run Code Online (Sandbox Code Playgroud)

应该回归真实;

我怎么能传递第三个参数?(我知道可以将它作为char*传递但是我必须有另一个表来比较运算符字符串,然后执行我想避免的操作)

是否可以在函数/方法中传递^(XOR)或||(OR)或&&(AND)等运算符?

提前致谢

c c++ parameters operator-keyword

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