C++ 运算符中的 Python 等效项[关闭]

Posted

技术标签:

【中文标题】C++ 运算符中的 Python 等效项[关闭]【英文标题】:Equivalent of Python in C++ operator [closed] 【发布时间】:2019-11-23 17:48:03 【问题描述】:

有没有办法在 C++ 中做同样的事情?

Python

int.__add__(1, 1)

我可以用 C++ 做一些东西,但它仍然很丑,而且没有经过优化和简短。

我只想要这个:1+1,但是没有 +。 我绝对想使用 int "class"。

用于矩阵乘法、加法和减法... 我只是想要更好看更短的代码。

【问题讨论】:

你如何定义一个函数int add(int a, int b) return a + b; 并像int r = add(1, 1);一样使用它 int 不是一个类。 给出一些上下文:为什么 std::plus,但除非你非常清楚为什么需要它,否则你不想使用它。 接受不同的语言工作不同必须适应你目前使用的任何语言怎么样..? C++ 不是 Python,永远不会。 Python 不是 C++,以后也不会。它们是不同的,你必须根据你使用的语言采用不同的编码风格和习语。 【参考方案1】:

我可以用 C++ 做一些东西,但它仍然很丑陋,而且不是很优化而且很短。

上次我检查时,int.__add__(1, 1)1+1 长得多。几乎任何东西都比1+1 长。至于优化,你无法谈论什么更优化,没有测量任何东西。

用于矩阵乘法、加法和减法

相同的整数+ 运算符在很多情况下都很有用。矩阵运算就是其中之一。没必要单独挑出来。

我只想要这个:1+1,但没有 +

你想要的是次要的。编程是一项团队运动。你做别人做的事。不仅因为它很可能经过尝试和测试,是切片面包之后最好的东西,还因为如果每个人都以特定的方式做某事而你做的不同,其他人会很难理解你的意思。

这并不是说您不能打破常规并引入创新。人们总是这样做。但他们并没有问任何人怎么做!如果你需要问,你没有能力带领人群。

我只是想要更好看更短的代码。

然后绝对积极地使用+。不费吹灰之力。

【讨论】:

【参考方案2】:

您想使用函数(或仿函数)而不是 + 运算符进行加法。 C++ 有 std::plus 。我不使用 C++,但我认为其中一个或两个应该可以工作:

int a = std::plus(1, 1);
int a = std::plus<int>(1, 1);

【讨论】:

以上是关于C++ 运算符中的 Python 等效项[关闭]的主要内容,如果未能解决你的问题,请参考以下文章

jQuery 中的 C++ memset() 等效项

c++ dlib img 中的 Android ImageProxy 等效项

如何创建只能由特定类使用的构造函数。 (C# 中的 C++ Friend 等效项)

IF COL_LENGTH('EMP_NUM','EMPLOYEE') 不为 NULL - ORACLE 中的等效项 [关闭]

rowsum 的 Rcpp 等效项 [关闭]

Perl 的 require 命令的 java 等效项是啥? [关闭]