![](https://img-blog.csdnimg.cn/20201014180756922.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
C++
星垂月朦胧
这个作者很懒,什么都没留下…
展开
-
C++ constexpr 常量表达式
概括在C++11中引入了 constexpr 关键字. 意思是常量表达式, 详细来说就是在编译期可求值的表达式. 可以修饰表达式, 函数, 构造函数, 类等… 可以让编译器做出尺度更大的优化.常量表达式的概念这个关键字是为了解决以前的 const 关键字带来的一些问题, 其实在代码实战中 const 显然是只有readonly只读这个概念, 其在很多场合上并不符合逻辑常量这个概念, 就比如说:const int f(){ return 1;}int main(){ int arr[f()]原创 2020-10-22 16:35:21 · 557 阅读 · 1 评论 -
C++ STL vector 底层原理
vector是我们最经常用到的STL容器之一其能够动态改变数组大小 比起C的数组方便了很多三个指针vector中有三个迭代器first,last,end, 分别指向了数组的开头, 数组的结尾+1以及数组的最大容量结尾迭代器这里可以理解为是指针当我们有了这三个指针之后, 一些vector的信息很快就能够得到int first,last,end; //假设存的是指针地址 运算只涉及到相对大小 所以直接用int距离unsigned int size(){ //通过首尾 很容易得出size r原创 2020-10-13 11:22:18 · 919 阅读 · 0 评论 -
C++ 移动语义 (左值右值 移动构造/赋值函数 move强制移动)
什么是移动语义移动语义是C++11新增的特性,利用移动语义可以做到移动一个对象而不是拷贝对象。一般用于处理临时对象的赋值,例如:vector<int> f(const vector<int> &arr){ vector<int> tmp; for(int i=0;i<arr.size();i++) tmp.push_back(arr[i]+233);}...原创 2020-05-23 04:32:29 · 378 阅读 · 0 评论