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

    你可能感兴趣的文章
    NIFI集群_内存溢出_CPU占用100%修复_GC overhead limit exceeded_NIFI: out of memory error ---大数据之Nifi工作笔记0017
    查看>>
    NIFI集群_队列Queue中数据无法清空_清除队列数据报错_无法删除queue_解决_集群中机器交替重启删除---大数据之Nifi工作笔记0061
    查看>>
    NIH发布包含10600张CT图像数据库 为AI算法测试铺路
    查看>>
    Nim教程【十二】
    查看>>
    Nim游戏
    查看>>
    NIO ByteBuffer实现原理
    查看>>
    Nio ByteBuffer组件读写指针切换原理与常用方法
    查看>>
    NIO Selector实现原理
    查看>>
    nio 中channel和buffer的基本使用
    查看>>
    NIO三大组件基础知识
    查看>>
    NIO与零拷贝和AIO
    查看>>
    NIO同步网络编程
    查看>>
    NIO基于UDP协议的网络编程
    查看>>
    NIO笔记---上
    查看>>
    NIO蔚来 面试——IP地址你了解多少?
    查看>>
    NISP一级,NISP二级报考说明,零基础入门到精通,收藏这篇就够了
    查看>>
    NISP国家信息安全水平考试,收藏这一篇就够了
    查看>>
    NIS服务器的配置过程
    查看>>
    Nitrux 3.8 发布!性能全面提升,带来非凡体验
    查看>>
    NiuShop开源商城系统 SQL注入漏洞复现
    查看>>