|
|
1
33
|
|
2
31
您应该将引用视为“指向非常量对象的常量指针”:
此外,引用只能作为存在的东西的别名构建(这对于指针来说是不必要的,尽管除了NULL之外还建议这样做)。这并不保证对象将保持在周围(并且实际上,当通过引用访问对象时,它可能有一个核心,如果它不再存在),请考虑此代码:
因此,在STL容器中,必须使用代理或指针。
自动检查 ,赋值有问题,因为它修改了右侧操作数。 希望有帮助:) |
|
|
3
8
除了语法糖之外,重要的区别在于引用不能更改为引用它们初始化时使用的对象以外的另一个对象。这就是为什么它们不能存储在映射或其他容器中,因为容器需要能够修改它们包含的元素类型。 为了说明这一点:
|
|
|
4
7
实际上,您可以在地图中使用参照。我不建议大型项目使用此选项,因为它可能会导致奇怪的编译错误,但是:
所以您可以使用map,但很难保证它被正确使用,但我将其用于小代码(通常是竞争性的)代码 |
|
|
5
2
存储引用的容器 有 在构造时初始化其所有元素,因此不太有用。
此外,一旦初始化,就不能更改容器元素的存储。斯威尔 总是 请参阅上面的存储。 |
|
|
Bob · BFS用映射C替换数组++ 8 年前 |
|
|
aghast · 如何在std::map中放置POD结构? 8 年前 |
|
|
killer · 地图声明未编译[重复] 8 年前 |
|
|
ksl · 在类声明中初始化常量成员变量时,调试模式中出现异常 8 年前 |
|
|
Ahmed Atteya · C++std::map在未找到键时添加值 8 年前 |
|
|
Leo Lai · std::map中的基元类型值是否已初始化? 9 年前 |
|
|
user6421810 · C++映射未正确插入 10 年前 |
|
|
user3794186 · C++std::map保存任意类型的值 11 年前 |