博客
关于我
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/

    你可能感兴趣的文章
    Nginx运维与实战(二)-Https配置
    查看>>
    Nginx配置Https证书
    查看>>
    Nginx配置ssl实现https
    查看>>
    Nginx配置TCP代理指南
    查看>>
    Nginx配置——不记录指定文件类型日志
    查看>>
    nginx配置一、二级域名、多域名对应(api接口、前端网站、后台管理网站)
    查看>>
    Nginx配置代理解决本地html进行ajax请求接口跨域问题
    查看>>
    nginx配置全解
    查看>>
    Nginx配置参数中文说明
    查看>>
    nginx配置域名和ip同时访问、开放多端口
    查看>>
    Nginx配置好ssl,但$_SERVER[‘HTTPS‘]取不到值
    查看>>
    Nginx配置如何一键生成
    查看>>
    Nginx配置实例-负载均衡实例:平均访问多台服务器
    查看>>
    Nginx配置文件nginx.conf中文详解(总结)
    查看>>
    Nginx配置负载均衡到后台网关集群
    查看>>
    ngrok | 内网穿透,支持 HTTPS、国内访问、静态域名
    查看>>
    NHibernate学习[1]
    查看>>
    NHibernate异常:No persister for的解决办法
    查看>>
    NIFI1.21.0_Mysql到Mysql增量CDC同步中_日期类型_以及null数据同步处理补充---大数据之Nifi工作笔记0057
    查看>>
    NIFI1.21.0_NIFI和hadoop蹦了_200G集群磁盘又满了_Jps看不到进程了_Unable to write in /tmp. Aborting----大数据之Nifi工作笔记0052
    查看>>