《C++ Primer》学习札记
JinSu_
这个作者很懒,什么都没留下…
展开
-
【C++】tuple类型的应用
tuple是C++11新标准里的类型。它是一个类似pair类型的模板。pair类型是每个成员变量各自可以是任意类型,但是只能有俩个成员,而tuple与pair不同的是它可以有任意数量的成员。但是每个确定的tuple类型的成员数目是固定的。#include<tuple>#include<iostream>auto test() -> std::tuple<double, float, int> { double a = 1; float b = 2;原创 2021-12-06 13:42:46 · 691 阅读 · 0 评论 -
【C++】STL迭代器iterator与索引index相互转换
#include<iostream>#include<vector>void main() { std::vector<int> vec = { 5,4,3,2,1,0 }; int index; for (auto iter = vec.begin(); iter != vec.end(); iter++) { index = std::distance(vec.begin(), iter); std::cout << index<.原创 2021-12-02 16:14:59 · 3923 阅读 · 0 评论 -
【C++】构造函数、拷贝构造函数、拷贝赋值函数
C++的构造函数、拷贝构造函数、拷贝赋值函数#include<iostream>#include<vector>#include<string>class Test {public: //构造函数 Test(std::string name = "",std::vector<double> data = std::vector<double>()) :m_data(data), m_name(name) {} //拷贝构.原创 2021-12-02 15:52:52 · 693 阅读 · 0 评论 -
【C++ Primer 学习札记】使用new或者make_shared创建shared_ptr智能指针
《C++ Primer》P400为了更容易(同时更安全)地使用动态内存,新的标准提供了智能指针(smart pointer)类型来管理动态对象。智能指针的行为类似常规指针,重要的区别是它负责自动释放所指向的对象。shared_ptr允许多个指针指向同一个对象创建并初始化一个shared_ptr智能指针的方式有四种:1.默认初始化2.make_shared3.new...原创 2019-10-20 16:13:18 · 3026 阅读 · 1 评论 -
【C++ Primer 学习札记】初始化和赋值
参考博客:【初始化(C++primer5th学习笔记)】https://blog.csdn.net/blubluhao/article/details/53436387《C++ Primer》P39初始化不是赋值,初始化的含义是创建变量时赋予其一个初始值,而赋值的含义是把对象的当前值擦除,而以一个新值来替代。1、默认初始化(1)对于内置类型(int),定义在任何函数之外的变量...原创 2019-10-19 11:07:14 · 181 阅读 · 0 评论 -
【C++ Primer 学习札记】返回数组指针和返回函数指针
目录一、返回数组指针1,类型别名2,直接定义3,尾置返回类型(C++11)4,使用decltype二、返回函数指针1,类型别名2,直接定义3,尾置返回类型(C++11)4,使用decltype一、返回数组指针返回数组指针有三种方式:1,类型别名2,直接定义3,尾置返回类型(C++11)4,使用decltype1,类型别名...原创 2019-10-19 10:54:32 · 358 阅读 · 0 评论 -
【C++ Primer 学习札记】引用数组的引用和指向数组的指针
《C++ Primer》P195C++语言允许变量定义成数组的引用。引用数组的引用,举例说明如下:int k[10] = { 0,1,2,3,4,5,6,7,8,9 };int(&arr)[10] = k;for (auto elem : arr){ cout << elem << endl;}指向数组的指针,举例说明如下:...原创 2019-10-19 10:03:56 · 173 阅读 · 0 评论 -
【C++ Primer 学习札记】左值和右值
《C++ Primer》P121当一个对象被用作右值的时候,用的是对象的值(内容);当对象被用作左值的时候,用的是对象的身份(在内存中的位置)一个重要的原则:在需要右值的地方可以用左值来代替,但是不能把右值当成左值(也就是位置)使用。当一个左值被当成右值使用时,实际使用的是它的内容(值)到目前位置,已经有几种我们熟悉的运算符是要用到左值的。赋值运算符(=)需要一...原创 2019-10-19 09:44:58 · 291 阅读 · 0 评论 -
【C++ Primer 学习札记】顶层const和底层const
《C++ Primer》P53因为const对象一旦创建后其值就不能再改变,所以const对象必须初始化。《C++ Primer》P57对于指针来说,用名词顶层const(top-level const)表示指针本身是个常量,而用名词底层const(low-level const)表示指针所指的对象是一个常量。更一般的,顶层const可以表示任意的对象是常量,这一点对...原创 2019-10-19 09:20:28 · 148 阅读 · 0 评论