百科问答小站 logo
百科问答小站 font logo



C++中key使用指针是否可以改变key指向的对象? 第1页

  

user avatar   haozhi-yang-41 网友的相关建议: 
      

其实关键的问题在于:map/set需要的是一个稳定的比较。这里的“稳定”的含义就是不管实际保存的对象怎么改变,对于map/set中任意两个对象,A>B或者!(A>B)这个关系必须贯穿于对象在map/set中的整个生存期。

如果你能在对象改变前后,再逻辑层面确保这个“稳定的比较”是可行的,那剩下的无非就就是一些代码技巧了:既然你已经重载了key的operator <,那其实很好办,在这里抹平你的改变前后的差异就行了。

如果在逻辑层面无法保证你的改变前后的“稳定”,那唯一的做法是在改变前先把对象从map/set中删掉,然后再插入改变后的对象。




  

相关话题

  网上有对于C++编程要避免使用cin、cout、fstream;而是使用scanf、printf、FILE *的说法, 请问是正确的吗? 
  为什么C/C++中“(*p).number”和“p->number”作用一样但却有两种写法? 
  计算机大牛们,看C++有关书籍是不是一遍就看懂了,总感觉自己笨,有些地方需要看几遍才懂? 
  为什么世界上大多数地方的人习惯用逗号表示小数点,而C++却用圆点表示小数点,而不是按照大多数地方习惯? 
  CMake是不是阻碍了C++的发展? 
  刷 LeetCode 对于国内 IT 企业面试帮助大吗? 
  Java 的开发效率究竟比 C++ 高在哪里? 
  关于阿里巴巴2011年一道C++笔试题(struct和class)的疑问? 
  为什么有些编程语言写完一句后要加分号? 
  作为非计算机专业的学生,觉得 C 语言远比其他语言易于上手,正常吗? 

前一个讨论
美国莫德纳称其新冠疫苗有效率 94.5%,将向美国申请新冠疫苗的紧急使用权,这一阶段研究意味着什么?
下一个讨论
异形具有腐蚀性的液体是什么酸?





© 2025-05-15 - tinynew.org. All Rights Reserved.
© 2025-05-15 - tinynew.org. 保留所有权利