左值和右值
C++中关于左值右值以及移动语义这块内容并不是很好理解,对这块内容做一个总结。
想象一下,你有一个成员函数,它被标记为const,因为你不希望在该函数中修改成员变量,为了保证类状态不变。
但是后来随着版本演进,你又不得不在该函数中修改一个新的成员变量,这个新的成员变量通常和类状态无关。
那么你需要认识下mutable。
性能,功耗,稳定性是衡量软件质量的重要指标。关注软件性能就是希望用最少时间做正确的事情,相同的输入在得到期望的输出过程中使用最少时间就意味着性能最优。优秀的软件架构,优秀的算法都是提高软件性能的重要手段。
我们平时写C++软件时候,可以如何测量软件性能呢。
这里分享一个简单好用的测试性能的方法。
C++软件在终端的每一次输入都以回车键作为结束,但是有些场景,我们希望每一个输入按键都能及时转换成对应的功能。
例如,在一个小游戏中,我希望WSAD的按键可以转换成上下左右的执行命令。我不希望看到这些按键在终端中输出出来,并且输入立即执行,不需要按回车按键。
可以利用stty来实现该功能。
C++内存分配一般说栈内存地址在堆内存高处,并且栈内存分配向下增长,堆内存地址向上增长。栈内存的向下增长是如何体现的?