博客
关于我
C++学习笔记十
阅读量:304 次
发布时间:2019-03-01

本文共 1306 字,大约阅读时间需要 4 分钟。

C++学习笔记十:const与容器操作

作为一名开发者,我最近在学习C++,每天都会记录自己的学习笔记。今天想整理一下最近的学习内容,希望能帮助自己更好地理解这些概念。


const关键字

在C++中,const是一个非常重要的关键字,用于定义常量或常引用。了解它的使用方式对于编写高效代码至关重要。

定义常量

const用于定义常量,它可以应用在数据成员、指针以及引用上。例如:

  • const char * a:指向的变量不可修改值,但指针值可以改变。
  • char * const a:指针不可改变值(常指针),但指向的变量值可以变。
  • const char * const a:常指针和常变量。

需要注意的是,常指针必须进行初始化,否则会导致指针常出错。

引用与效率

const T & a:引用可以提高函数调用效率,因为它避免了对象复制操作。引用不仅仅是变量的地址,它还可以用于函数参数传递。

类中的const规则

在类中使用const需要遵守以下几点:

  • 数据成员

    • 初始化方式有多种:
      • 定义时直接初始化:const int dataMember = 1;
      • 在构造函数中使用初始化列表:Test::Test(i): dataMember(i) {}
      • 在实现文件中初始化:const int Test::dataMember = 1;
    • 如果成员是静态的,可以直接在定义时初始化:static const int dataMember = 10;
  • 成员函数

    • const成员函数是指在函数参数列表后面,大括号前加上const关键字的函数。
    • 何时使用const成员函数:只有不会修改数据成员的函数才能声明为const类型。
    • const对象的行为:const对象只能访问const成员函数,默认调用const成员函数。
    • const成员函数的限制:不能调用非const成员函数。

  • 顺序容器之关系操作符

    在C++中,顺序容器(如vectorlist)都支持使用关系操作符进行比较。关系操作符的结果取决于元素类型定义的关系操作符。如果元素类型没有定义对应的关系操作符,则容器不能进行该类型的比较。

    例如:

    • a == b:如果ab是两个顺序容器,比较它们的元素,直到找出第一个不相等的元素。
    • 如果某个元素类型没有定义==操作符,那么两个这样的容器无法进行比较。

    容器大小操作

    了解容器的大小操作对于管理容器内元素非常重要。C++提供了以下几个函数来操作容器的大小:

  • size():返回容器中元素的数量。
  • max_size():返回容器最多可以容纳的元素数量。
  • empty():判断容器是否为空。
  • resize(n):调整容器大小,使其能容纳n个元素。若n大于当前大小,会添加新元素;若小于,会删除多余元素。
  • resize(n, t):类似resize(n),但新元素初始化为t
  • 需要注意的是,resize操作可能会使得迭代器失效,因此在迭代时需要谨慎处理。


    通过学习这些概念,我对C++的理解有了进一步的加深。虽然const和容器操作看似简单,但它们在实际开发中起到至关重要的作用。希望这些笔记能帮助我更好地掌握C++编程!

    转载地址:http://lfao.baihongyu.com/

    你可能感兴趣的文章
    Numpy:按多个条件过滤行?
    查看>>
    Numpy:条件总和
    查看>>
    numpy、cv2等操作图片基本操作
    查看>>
    numpy中的argsort的用法
    查看>>
    NumPy中的精度:比较数字时的问题
    查看>>
    numpy判断对应位置是否相等,all、any的使用
    查看>>
    Numpy多项式.Polynomial.fit()给出的系数与多项式.Polyfit()不同
    查看>>
    Numpy如何使用np.umprod重写range函数中i的python
    查看>>
    numpy学习笔记3-array切片
    查看>>
    numpy数组替换其中的值(如1替换为255)
    查看>>
    numpy数组索引-ChatGPT4o作答
    查看>>
    numpy最大值和最大值索引
    查看>>
    NUMPY矢量化np.prod不能构造具有超过32个操作数的ufunc
    查看>>
    Numpy矩阵与通用函数
    查看>>
    numpy绘制热力图
    查看>>
    numpy转PIL 报错TypeError: Cannot handle this data type
    查看>>
    Numpy闯关100题,我闯了95关,你呢?
    查看>>
    nump模块
    查看>>