首页 > 编程语言 >C++中mutable关键字学习

C++中mutable关键字学习

时间:2023-10-01 21:13:01浏览次数:38  
标签:std last string value 关键字 C++ key mutable

转自:https://liam.page/2017/05/25/the-mutable-keyword-in-Cxx/,讲的很好。

1.介绍

mutable即可变的,mutable 只能用来修饰类的数据成员;而被 mutable 修饰的数据成员,可以在 const 成员函数中修改。

例子:

class HashTable {
 public:
    //...
    std::string lookup(const std::string& key) const
    {
        if (key == last_key_) {
            return last_value_;
        }

        std::string value{this->lookupInternal(key)};

        last_key_   = key;
        last_value_ = value;

        return value;
    }

 private:
    mutable std::string last_key_;//用于缓存最近被查询的key和值
    mutable std::string last_value_;//在const函数中可更新。
};

 在匿名函数中可以:

 //似乎用处也不大的。。。

 

标签:std,last,string,value,关键字,C++,key,mutable
From: https://www.cnblogs.com/BlueBlueSea/p/17739273.html

相关文章

  • 在VS Code中配置C/C++
    之前因为学了一点html,所以下了一个VSCode来写html代码。今天要写C++的代码,以前都是用VS写的。但是突然想了一下既然都装了VSCode,为啥不配置一下。配置好了后以后写C/C++代码也不用打开繁重的VS了。而且VSCode还能加很多插件。说干就干,上网找了资料,终于配置好了。还是有蛮多坑......
  • C++常见算法&数据结构模版
    各种常见算法&数据结构模板1.最长不下降子序列(LIS)1.1\(O(n^2)\)做法点击查看代码for(inti=1;i<=n;i++){ cin>>a[i]; dp[i]=1; } for(inti=1;i<=n;i++){ for(intj=1;j<i;j++){ if(a[i]>a[j]){ dp[i]=max(dp[i],dp[j]+......
  • C++ STL标准容器的特点和典型的使用场景
    概念和作用C++标准模板库(StandardTemplateLibrary,STL)提供了一组通用的模板类和函数,用于处理常见的数据结构和算法。STL中的标准容器是其中的重要组成部分,它们提供了不同的数据结构和操作方式,适用于各种不同的使用场景。说白了,就是每一种容器代表一种特定的数据结构。我们在学C......
  • C++对拍模版
    Windowscheck.cpp#include<bits/stdc++.h>usingnamespacestd;intmain(){ while(true) { system("data.exe"); system("std.exe"); system("brute.exe"); if(system("fcstd.outbrute.out"))......
  • C++快读、快写模版
    inlineintread(){ charch=getchar(); intx=0,f=1; while(!isdigit(ch))if(ch=='-')f=-1,ch=getchar(); while(isdigit(ch))x=x*10+ch-'0',ch=getchar(); returnx*f;}inlinevoidprint(intn){if......
  • Python代码转换成C++
    Python和C++是两种不同的编程语言,但它们都有各自的优势和适用场景。在某些情况下,我们可能需要将Python代码转换成C++代码,以获得更高的执行效率或更好的性能。本文将从多个方面介绍如何将Python代码转换为C++代码。一、代码结构Python和C++在代码结构上存在一些差异。Python是一种解......
  • C/C++学习 -- 流加密算法(RC4算法)
    在信息安全领域,加密算法扮演着至关重要的角色。其中,RC4算法是一种广泛使用的流密码算法,用于数据的保密性和机密性。本文将深入探讨RC4算法的概述、特点、原理,以及提供C语言和C++语言实现RC4算法的代码案例。一、RC4算法概述RC4算法,又称RivestCipher4或Ron'sCode4,是一种流密码(St......
  • 27、Type关键字
    1、是什么?type是go语法里额重要而且常用的关键字,type绝不只是对应于C/C++中的typeof。搞清楚type的使用,就容易理解Go语言中的核心概念struct、interface、函数等的作用2、怎么玩?(1)定义结构体//使用type定义结构体typePersonstruct{ namestring ageint}(2)定义......
  • C++中悬垂指针(delete后指针)仍然可以访问所指内存的问题
    C++中悬垂指针(delete后指针)仍然可以访问所指内存的问题在指针被delete之后,此时指针被称为空悬指针或者悬垂指针,即指向一块曾经保存数据对象,但现在已经无效的内存的指针。在C++编程中,当我们delete一个指针后,指针所指向的堆地址空间便被释放,指针值变成无效,该内存可以用于之后的内......
  • C/C++中的ACM题目输入处理——简单易上手
    这里就不按其他文章的以各种情况为分类方法,而是以方法本身为分类办法。因为有一些方法是不同情况通用的,比如已知数量数字的输入和未知数量数字的输入,其实可以用同一种办法。输入C/C++:scanf正则表达式头文件<stdio.h>或<cstdio>普通使用时,语法为scanf("%d",&a),当遇到空格符、......