标签: operator-keyword

为什么C++没有power运算符?

许多语言都有电力运营商; 为什么不用C++?例如,Fortran和Python使用**并且通常使用(例如在LaTeX中)编写^.

c++ operator-keyword

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

什么是C++中的"<?="运算符?

我在这里遇到了以下代码,它来自使用邻接矩阵的Dijkstra算法的C++实现.

//read in edges keeping only the minimum
for(int i=0; i<E; i++) {
    int v1,v2,tmp;
    fin >> v1; fin >> v2;
    fin >> tmp;
    adjmat[v1][v2]<?=tmp; // <?= sets left to min(left,right)
    adjmat[v2][v1]<?=tmp;
}
Run Code Online (Sandbox Code Playgroud)

注意最后两行,它们适用于操作符<?=.正如评论所述,以下行

adjmat[v1][v2]<?=tmp; // <?= sets left to min(left,right)

将设置leftmin(left,right).

我以前从未见过这个操作员.我试过VS中的代码,它无法编译.它是什么?它怎么能left成为min(left,right)

c++ operators min operator-keyword

23
推荐指数
2
解决办法
918
查看次数

如何创建和使用类箭头运算符?

因此,在研究了它到处之后,我似乎无法找到如何创建类箭头操作符,即

class Someclass
{
  operator-> ()  /* ? */
  {
  }
};
Run Code Online (Sandbox Code Playgroud)

我只需要知道如何使用它并适当地使用它. - 它的投入是什么? - 它返回什么? - 我如何正确声明/原型化?

c++ class operator-keyword

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

反引号运算符的固定性?

反引号运算符的固定性是什么?

例如,来自Real World Haskell的代码:

ghci> (1+) `fmap` [1,2,3] ++ [4,5,6]
[2,3,4,4,5,6]
Run Code Online (Sandbox Code Playgroud)

很明显,反引号操作符`fmap`具有更高的固定性++,但GHCi没有给出.

haskell operator-precedence operator-keyword

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

C++转换运算符重载和多态

我对C++的这种行为感到困惑:

struct A {
   virtual void print() const { printf("a\n"); }
};

struct B : public A {
   virtual void print() const { printf("b\n"); }
};

struct C {
   operator B() { return B(); }
};

void print(const A& a) {
   a.print();
}

int main() {
   C c;
   print(c);
}
Run Code Online (Sandbox Code Playgroud)

那么,测验是,程序的输出是什么 - a或b?嗯,答案是答案.但为什么?

c++ polymorphism casting overloading operator-keyword

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

将String作为变量连接到Character vs与其他String连接时有什么区别?

当我看到这样的东西(伪1线):

str1 + "a" + str2
Run Code Online (Sandbox Code Playgroud)

是否比以下(伪1线)更糟(或更好/相等)?

str1 + 'a' + str2
Run Code Online (Sandbox Code Playgroud)

更新:更好的例子(由@QPaysTaxes提供)以减少关于我原始示例的混淆.

我尝试了什么: 过去10年编程Java的各种东西,但我从来没有真正看到底层的东西 - 例如我会假设第二个稍微"更快/更好",因为没有为其创建的String-Object Java的斜杠标志和/或垃圾收集器必须处理更少.我曾经为Java证书做好准备,可能本来可以在那个时候更好地争论,但是我的日常业务似乎也是关于Java的"理论"必须保持最新...我知道没有任何比我indexOf('c')应该使用的假设更好的解释而不是indexOf("C")我想知道是否相同的字符串连接.

我也搜索了一下,但由于我的标题可能暗示我不太好描述我正在寻找的没有例子.对此我很抱歉,这个差点的可能性只是产生了重复.

我将尝试: 基于这里接受的答案字符串连接:concat()vs"+"运算符我希望能够有一个开始看到底层的什么,有一天能够争论/回答这样的问题,深入了解.

java string performance operator-keyword

22
推荐指数
3
解决办法
2135
查看次数

是否可以在结构外编写自动转换操作符?

确切的情况是下一个:我在系统API定义结构CGPointCGSize,我希望能写my_point = my_size.我无法修改CGPointstruct,只能编写外部运算符.我可以编写二元运算符(+,-...),但operator=必须在struct内部声明.那还有其他解决方案吗?

c++ casting operator-keyword

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

了解Scala中的中缀方法调用和cons运算符(::)

我对Scala编程语言很陌生,在我在这里讲课时,正在尝试一些困扰我的想法.

我想我无法理解cons运算符是如何工作的,这里有一些我尝试过的东西:

我创建了一个伪随机数生成器,然后尝试创建一个随机值的列表:

scala> val gen = new java.util.Random
gen: java.util.Random = java.util.Random@1b27332

scala> gen nextInt 3 :: Nil
<console>:7: error: type mismatch;
 found   : List[Int]
 required: Int
       gen nextInt 3 :: Nil
                     ^
Run Code Online (Sandbox Code Playgroud)

但它试图将List(3)传递给nextnt方法.当我使用paratheses时,没有问题

scala> (gen nextInt 3) :: Nil
res69: List[Int] = List(1)
Run Code Online (Sandbox Code Playgroud)

我对执行顺序感到好奇,所以我创建了一个检查它的函数

scala> def pr(i:Int):Int = { println(i); i }
pr: (i: Int)Int

scala> pr(1) :: pr(2) :: pr(3) :: Nil
1
2
3
res71: List[Int] = List(1, 2, 3)
Run Code Online (Sandbox Code Playgroud)

如输出中所示,执行顺序与外观顺序相同.然后我认为它可能是关于'nextInt'功能,然后我尝试了以下:

scala> 1 + …
Run Code Online (Sandbox Code Playgroud)

scala list infix-notation cons operator-keyword

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

什么是Javascript中的双点运算符(..)?

我正在使用Spidermonkey中的Parser API进行一些工作.文档显示有二元运算符...任何人有任何想法这是什么/呢?我很想知道.我以前从未见过它.如果我被迫猜测,我不得不说它与E4X有关,但这只是因为我对E4X一无所知.

javascript operator-keyword

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

Java autoboxing和三元运算符疯狂

只花了几个小时调试这段代码:

    LinkedHashMap<String, Integer> rsrqs = new LinkedHashMap<String, Integer>();
    Integer boxedPci = 52;
    Integer boxedRsrq = boxedPci != null ? rsrqs.get(boxedPci.toString()) : -1;
Run Code Online (Sandbox Code Playgroud)

以上产生了NullPointerException.以下代码不:

    LinkedHashMap<String, Integer> rsrqs = new LinkedHashMap<String, Integer>();
    Integer boxedPci = 52;
    Integer boxedRsrq = boxedPci != null ? rsrqs.get(boxedPci.toString()) : Integer.valueOf(-1);
Run Code Online (Sandbox Code Playgroud)

唯一的区别是用Integer.valueOf()包装-1.一旦有人解释了为什么这个代码的行为方式,我肯定我会打破我的前额..但有人可以向我解释为什么这个代码的行为方式:)

- 编辑

第二个想法,我怀疑NPE来自rsrqs.get()返回null,我认为java在尝试解包成int之前,然后再回到整数.Integer.valueOf()强制Java执行unbox-box步骤.故事的道德启示; 不要只忽略Eclipse中的那些拳击警告;)

java autoboxing ternary operator-keyword

19
推荐指数
2
解决办法
2292
查看次数