关于运算符重载

灌水区

bool operator*(){} (只会写框架的究极juruo)
by rangertank @ 2024-04-27 19:39:54


@[__Ending__](/user/995753) 实现一个函数是一样的效果吧
by Eason_cyx @ 2024-04-27 19:41:27


@[rangertank](/user/703487) 不对吧,貌似前面应加个 `friend`?我拿不准这里: ```cpp friend bool operator [?] * (map<int,int>n,map<int,int>m){ } ```
by __Ending__ @ 2024-04-27 19:42:13


不知道欸,friend好像是你用了class之后才需要的吧,看你自己的代码用不用class 吧?
by rangertank @ 2024-04-27 19:43:29


@[__Ending__](/user/995753)
by rangertank @ 2024-04-27 19:43:39


不对,打错了,是这样: ```cpp friend [?] operator * (map<int,int>n,map<int,int>m){ } ```
by __Ending__ @ 2024-04-27 19:43:42


@[Eason_cyx](/user/741244) 嗯对的,我想重载个试试
by __Ending__ @ 2024-04-27 19:44:53


啊对,不写class是可以不用friend的 @[__Ending__](/user/995753)
by rangertank @ 2024-04-27 19:45:30


@[__Ending__](/user/995753) C++ 可是多范式编程语言,您可以使用 C++ 中的函数式编程思维来解决这个问题: *(这里我不知道你的下标如何定义,就使用了假设的全局变量 `N` 来迭代。您可以自行修改。您也可以提供更详细的内容请我帮忙修改)* ```cpp map<int, int> operator*(const map<int, int>& a, const map<int, int>& b) { map<int, int> res; for (int i = 1; i <= N; i++) { res[i] = a[i] + b[i]; } return res; } ``` 使用 C++14 将默认开启移动语义,这样函数返回结果时就可以避免数据复制,从而提升效率。
by CleanIce @ 2024-04-27 19:45:52


@[CleanIce](/user/821660) 《chatgpt大神》
by rangertank @ 2024-04-27 19:46:20


| 下一页