求问常数优化的原理?

P2151 [SDOI2009] HH去散步

@[zqy1018](/space/show?uid=11765) 是啊不然要define干什么呢,const int不是更好写吗
by Lolierl @ 2017-05-29 17:48:48


define是宏展开,只是编译时替换文本 const就是定义了一个常量,还是有内存中寻址的操作什么的 C++11新增的constexpr也很快,编译时求值
by pointedpoints @ 2017-05-29 18:14:44


最好是 'typedef', 'define'不会参与编译
by hellomath @ 2017-05-29 18:56:57


@[larryzhong](/space/show?uid=20438) typedef不行吧,它只是定义一种类型的别名,不能定义常数吧
by pointedpoints @ 2017-05-29 20:21:02


用个模板类装一个常数再typedef,或者用枚举 ```cpp template<typename T,T val> struct constexpr_value{ operator T()const {return val;} } typedef constexpr_value<int,3> Three; //或者 enum {Three=3}; ``` 不过缺点就是只能定义整数常量就是了
by gumi229 @ 2017-05-29 20:51:12


嘛...我也是因为被这个细节卡了很久的TLE所以才想问下的。 不过大概知道了,提升了一些姿势水平。 感谢楼上的诸位!
by zqy1018 @ 2017-05-29 23:21:01


果然,Orz常数帝们 改了以后就从50->100了 (手贱#define mod 49589 WA了一次)
by λᴉʍ @ 2017-09-11 08:52:24


稳如define比const int快
by 李寻欢 @ 2018-07-01 20:26:53


@[pointedpoints](/space/show?uid=33461) 貌似不用寻址吧?编译的时候全部都优化替换上去了
by guodong @ 2019-07-28 20:30:06


int 用寻址,const int 不用寻址
by guodong @ 2019-07-28 20:30:28


| 下一页