首页
学习
活动
专区
圈层
工具
发布
    • 综合排序
    • 最热优先
    • 最新优先
    时间不限
  • 来自专栏python3

    python mutable 和 imm

    好了,看了这么多的问题,直入正题吧,就是今天python里面的类型其实也分为immutable和mutable二种,之所以会导致上面的现象,就是因为常数是immutable类型,回想之前说python任何数据都是对象 那好,如果a是一个mutable的引用呢? view plaincopy to clipboardprint? 一般情况下,程序员自定义的python类型都是mutable的,但是如果你想定制immutable的数据类型,那么你必须重写object的__setattr__和__delattr__方法,如下: view

    52210发布于 2020-01-10
  • 来自专栏python3

    python学习之---mutable

    python的数据类型分为mutable(可变) 和 immutable (不可变) mutable : list ,dict inmutable : int , string , float ,tuple ... mutable和immutable 字面意思理解就是说数据可变和数据不可变 由于python的变量(variable)不需要声明,而在赋值的时候,变量可以重新赋值为任意值,这就涉及到Python 那么总结一下: 对于inmutable object 我们在函数参数传递是值传递 对于mutable object,我们在函数参数传递是指针传递

    91220发布于 2020-01-03
  • 来自专栏Reck Zhang

    LeetCode 0307 - Range Sum Query - Mutable

    Range Sum Query - Mutable Desicription Given an integer array nums, find the sum of the elements between

    32620发布于 2021-08-11
  • 来自专栏算法修养

    Range Sum Query - Mutable

    题目 动态就区间和,线段树,树状数组都可以 class NumArray { public: int n; int c[100005]; vector<int> nums; NumArray(vector<int>& nums) { this->nums = nums; memset(c,0,sizeof(c)); n = nums.size(); for (int i = 0; i < nums.size();

    49520发布于 2020-06-04
  • 来自专栏C/C++基础

    C++中mutable的用法

    在C++中,mutable也是为了突破const的限制而设置的,被mutable修饰的变量将永远处于可变的状态。 mutable的作用有两点: (1)保持常量对象中大部分数据成员仍然是“只读”的情况下,实现对个别数据成员的修改; (2)使类的const函数可以修改对象的mutable数据成员。 使用mutable的注意事项: (1)mutable只能作用于类的非静态和非常量数据成员。 (2)在一个类中,应尽量或者不用mutable,大量使用mutable表示程序设计存在缺陷。 name; mutable int getNum; //mutable const int test; //编译出错 //mutable static int static1;//编译出错 mutable不能修饰static数据成员,因为static数据成员存储在Data段或BSS段,属于类,不属于类对象,那么常对象和常函数可以对其任意地修改,所以类的static数据成员根本不需要mutable

    5.9K20发布于 2019-02-22
  • 来自专栏机器学习与python集中营

    图解python可变对象(mutable

    列表(list)是一个可变容器,可变与不可变是一对很微妙的概念,因为网上经常出现,所以再重点总结下。

    1.2K10发布于 2019-12-10
  • 来自专栏用户4352451的专栏

    Java中的mutable和immutable对象

    Java中的mutable和immutable对象 1.mutable(可变)和immutable(不可变)类型的区别 可变类型的对象:提供了可以改变其内部数据值的操作,其内部的值可以被重新更改。 2.mutable和immutable类型的优缺点 mutable immutable 优点 可变类型会减少数据的拷贝次数,从而其效率 要高于immutable 由于内部数据不可变,所以对其频发修改会产生大量的临时拷贝 .举例 Java中的String类的对象都是典型的immutable数据类型,一个String对象一旦被new出来,那么其代表的数据便不可被重新assigned;StringBuilder类的对象却是mutable 4)如果类中的某成员为mutable类型,那么在初始化该成员或者企图使用get方法从外部对其进行观察的时候,应该使用深度拷贝,确保类immutable。

    1.1K20发布于 2020-08-26
  • 来自专栏iSharkFly

    Java 的 Mutable 和 Immutable 对象

    Mutable object(可变对象) :当对象被创建后,你可以修改对象的状态以及字段。 https://www.ossez.com/t/java-mutable-immutable/13265

    50300发布于 2021-02-02
  • 来自专栏乐行僧的博客

    C++关键字mutable和explicit

    一般在类的常方法中,尽管常方法不允许我们修改类中的任何变量,但是有时候由于实际场景的需求,还是需要对某一或某几个变量进行修改,这时候就可以使用mutable来修饰对应的变量了。

    37820编辑于 2022-02-25
  • 来自专栏C/C++基础

    C++中mutable关键字的用法

    在C++中,mutable也是为了突破const的限制而设置的。被mutable修饰的变量将永远处于可变的状态。 mutable的作用有两点: (1)保持长量对象中大部分数据成员仍然是“只读”的情况 下,实现对个别数据成员的修改。 (2)使const函数可修改对象的mutable数据成员。 使用mutable的注意事项: (1)mutable只能作用于类的非静态和非常量数据成员。 (2)在一个类中,应尽量或者不用mutable,大量使用mutable表示程序设计存在缺陷。 name; mutable int getNum; //mutable const int test; //编译出错 //mutable static int static1 但是为什么mutable不能修饰static数据成员呢?

    80510发布于 2018-08-03
  • 来自专栏cpp加油站

    c++中explicit和mutable关键字探究

    今天说一说c++里面的两个关键字explicit和mutable。 2. mutable关键字 mutable用于类的非静态和非常量数据成员,一般类的成员函数被声明为const,就表示不会修改类的数据成员,但如果要在常成员函数中修改类的非静态和非常量数据成员,则可以使用 mutable修饰该数据成员,如下: #include <iostream> class demo { public: int getCnt() const { m_nCount++; return int m_nCount; }; int main() { return 0; } 在int类型前面加一个mutable关键字,编译就通过了。 总结:mutable允许你在一个固定不变的房子里面放置某些可变的物件。

    51120发布于 2021-05-14
  • 来自专栏学习日记

    Range Sum Query - Mutable.go

    版权声明:原创勿转 https://blog.csdn.net/anakinsun/article/details/89055121

    52430发布于 2019-04-12
  • 来自专栏令仔很忙

    多线程----Immutable VS Mutable (可变与不可变)

    Immutable是什么意思?不变的、不发生改变的意思。在JDK中有很多的类被设计成不可变的,举个大家经常用到的类java.lang.String,String类被设计成不可变。String所表示的字符串的内容绝对不会发生变化。因此,在多线程的情况下,String类无需进行互斥处理,不用给方法进行synchronized或者lock等操作,进行上锁、争抢锁、解锁等流程也是有一定性能损耗的。因此,若能合理的利用Immutable,一定对性能的提升有很大帮助。

    78630发布于 2019-02-25
  • 来自专栏前端西瓜哥的前端文章

    CRDT 协同编辑:修改树的节点层级 Mutable Tree Hierarchy

    算法来自 Figma 前 CTO Even Wallace 的文章: 《CRDT: Mutable Tree Hierarchy》 https://madebyevan.com/algos/crdt-mutable-tree-hierarchy

    72610编辑于 2024-03-12
  • 来自专栏后端学习之道

    Java中的可变对象(Mutable)与不可变对象(Immutable)

    但这鼓励我学习更多有关 Java 中Immutable和Mutable类的知识,以及如何在 Java 中创建自定义的Immutable。 ; // Mutable operation System.out.println(mutableString.toString()); // Outputs: Hello, World!

    1.1K30编辑于 2023-11-08
  • 来自专栏韩曙亮的移动开发专栏

    【错误记录】Kotlin 编译报错 ( Smart cast to ‘Xxx‘ is impossible, because ‘xxx‘ is a mutable property ... )

    versionName "0.1" } } 编译时报错如下 : Smart cast to 'Bitmap' is impossible, because 'bitmap' is a mutable

    2.8K20编辑于 2023-03-29
  • 来自专栏绿巨人专栏

    变量的属性: 不可变(immutable), 可变(mutable), 重定义(shadowing), 常量(const), 静态(static)

    [Rust] 变量的属性: 不可变(immutable), 可变(mutable), 重定义(shadowing), 常量(const), 静态(static) 变量的可变性 在 Rust 中, 变量可以具有下面的属性 immutable: 不可变变量 mutable: 可变变量 shadowing: 重定义(遮蔽)一个变量 const: 常量 static: 静态变量 不可变变量(immutable) vs 可变变量 定义一个可变的静态变量 static mut LEVEL: i32 = 5; // 定义一个不可变的静态变量 static CORRECT: i32 = 1; fn main() { // 错误: note: mutable aliasing violations or data races will cause undefined behavior LEVEL = LEVEL + 1; // 错误: note: mutable

    1.5K20发布于 2021-04-09
  • 来自专栏太阳影的学习记录

    C++笔记——类(0)定义、访问控制、友元、default、mutable、构造函数

    这时候就需要在变量的声明中加入mutable关键字。 class screen { public: void someMember() const; // 这个是只读成员函数 private: mutable size_t accessCtr someMember() const { ++accessCtr; } 上面函数声明后面加const代表声明的函数是只读函数,只读函数通常只能够读取类里面成员函数的值,而不能够修改他们,除非成员函数前有mutable

    71320发布于 2021-10-15
  • 来自专栏CDN及云技术分享

    日更系列:谷歌pb结构mutable滥用导致的潜在内存泄漏

    对于自定义复杂对象非pld类型,protobuf (c++) 使用两种方法设置内嵌class对象的值,分别是set_allocated_ 和 mutable_。 这个mutable_如果在非线程安全的环境被滥用,会有潜在的内存泄漏,这个问题比较隐蔽。 ()->mutable_user_download()->ParseFromString(data, size); } 解析的query_word的回调函数(data, size) { result.mutable_user_feature ()->mutable_query_word()->ParseFromString(data, size); } 那么mutable这个方面内部会进行是否空指针判断,如果是空指针,进行对象内存分配。 我们要保证在一个不存在线程安全问题的地方先调用一下mutable方法,预分配下内存,后续用到的时候就不会创建新内存。

    2.4K10编辑于 2022-01-29
  • 来自专栏iDoitnow

    C++避坑---lambda表达式变量的捕获与mutable关键字

    include <iostream> using namespace std; int main() { int a = 0; static int b = 0; auto f = [=]() mutable 除非 lambda 表达式中使用了关键词 mutable,否则函数调用运算符或运算符模板的 cv 限定符都会是 const,并且无法从这个 operator() 的内部修改以复制捕获的对象。 如果lambda表达式未使用mutable修饰,则operator()函数是const类型的,使用mutable可以解除该限制。 上例中lambda表达式被转化为类__lambda_8_12,其重载了operator(),由于使用了mutable修饰,解除了operator()的const修饰(默认情况下是const的)。 总 结 lambda表达式实际上就是一个独有的无名非联合非聚合类,其捕获的数据是它的类成员,该类重载了operator(),且默认情况下该成员函数是const,可以使用mutable关键字来去除const

    98010编辑于 2023-05-17
领券