zoukankan      html  css  js  c++  java
  • c++ 学习笔记

    C++学习笔记

    1、使用C++11的标准来编译C++要添加-std=c++11参数(gcc版本要大于4.8)

    g++ -std=c++11 test.cpp -o test
    

    2、输入EOF

    windows    : CTRL+Z
    linux/unix : CTRL+d
    

    3、引用初始化

    普通引用只能用一个左值(对象)进行初始化,因为只能引用一个对象。

    int &a = b;                                 # a是b的引用,通过a可以修改b的值
    vector<int>::iterator &it = ivec.begin();   # 错误,ivec.begin()返回的是一个值,是一个临时对象,在return语句执行完后,就会被销毁,这样就返回了一个悬空的引用。
    
    # 添加中间变量
    vector<int>::iterator a = ivec.begin();     # 赋值给中间变量,中间变量是一个左值
    vector<int>::iterator &it = a;              # 左值初始引用。
    
    # 返回引用的函数,可以初始化引用
    int &getRef();                              # 返回的是一个引用,所以getRef()是一个左值。
    int &c = getRef();                          # 左值可以初始化化引用
    

    const 引用可以用一个右值进行初始化

    const int &a = 5;                                # a不能改变
    const vector<int>::iterator &it = ivec.begin();  # it不能改变,++it都是非法的,没有意义
    改变临时变量的生命周期
    
    vector<int>::iterator &&it = ivec.begin();   # 添加两个“&”符号,产生一个返工值的副本?
    

    4、man命令来查看类的成员

    man std::string    // 可以查看string的成员变量和成员函数的声明。
    

    5、使用标准库的类型和对象

    使用标准库类型和对象要分两步
    1、include标准库的头文件
    2、using namespace std; 或者每个类型前都加上std::,表示这个类型是标准库中的。
    
    只include头文件,编译器是找不到类型或对象的,为什么还不知道。
    
    std::string  //使用标准库中的类
    std::cout    //使用标准库中的对象
    
  • 相关阅读:
    BZOJ2512 : Groc
    BZOJ3644 : 陶陶的旅行计划
    BZOJ1439 : YY的问题
    BZOJ2872 : 优莱卡
    BZOJ3273 : liars
    BZOJ4133 : Answer的排队
    URAL Palindromic Contest
    ZOJ Monthly, January 2018
    BZOJ2689 : 堡垒
    2017-2018 ACM-ICPC, Central Europe Regional Contest (CERC 17)
  • 原文地址:https://www.cnblogs.com/yuandonghua/p/15636117.html
Copyright © 2011-2022 走看看