问题标签 [raw-pointer]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
c++ - c ++使用原始指针创建循环依赖对象
我正在尝试创建一个连通图并对其执行某些计算。为此,我需要从该图中的每个节点访问其邻居,并从其邻居访问其邻居的邻居,依此类推。这不可避免地会产生许多(有用的)循环依赖。
下面是一个带有 3 个相互连接的节点(如三角形的 3 个顶点)的简化示例,我不确定这种方法是否是一个好方法,特别是如果清理留下任何内存泄漏:
我也知道我可以使用shared_ptr
+weak_ptr
来完成任务,但是智能指针会带来开销,我希望尽可能避免这种情况(我也讨厌一直使用 .lock() 来访问数据,但这并不重要)。我使用智能指针重写了代码,如下所示,我想知道两段代码之间有什么区别(两段代码的输出相同)。
c++ - 描述原始指针(指向对象)的概念的正确实现是什么?
这可能只是学术兴趣。
因为我注意到我的实际例子可能不适合提出这个问题。
最初我写了类似的东西
备份地址。auto
现在我想知道我是否可以通过用更有意义、视野更开阔的 C++20 概念来代替这个愚蠢的概念来做得更好。
经过一番思考,该特定示例中的正确选择可能只是
因为这反映了备份的意图,即某物的副本。
但是剩下的学术问题是:正确映射原始指针概念的行为的正确(概念标准库)实现是什么?如有必要,让我们将“指针”限制为指向对象的指针。还有指向 void、函数、成员的指针——可能会使问题复杂化。
我想到了与迭代器的关系。希望不会再次正确回答我自己的问题:std::contiguous_iterator
在某些情况下会是一个有价值的选择吗?有人可以就该主题分享或多或少完整的专家观点吗?
为什么还没有针对该概念的 std::pointer_to_object 标准库实现(当着你的面大喊大叫)?
rust - 如何打印原始指针的大小?
当我在操场上尝试这个时它失败了:
有没有办法打印原始指针的大小*const u32
?
c++ - 在构造函数中移动/交换中间向量后,我应该如何管理它?
我正在学习内存管理,但不太确定如何管理删除和/或析构函数策略。
假设我有以下模板:
我应该如何设置析构函数策略db
?我知道对于原始指针,std::move
仅将向量的中间向量复制到db
; 因此,我仍然需要删除中介动态分配的向量。我可能是错的,但我相信对于std::swap
.
但是,在程序结束时,我应该如何管理析构函数策略db
?我只是将其设置为默认值吗?
c++ - 不确定智能指针 C++
我是 C++ 新手,我想问一下下面的代码。假设我们有 A 类,然后是 A 的子类 B。然后我们有其他 C 类,我希望这个类能够拥有 A 对象或 B 对象。我为此使用了模板。我不确定这是否是好方法。另外我的另一个问题是我读到使用拥有原始指针是一种不好的做法,那么我该如何在这里使用智能指针呢?欢迎任何建议或意见。
c++ - C ++将原始指针包装在容器双端队列中的类中不起作用?
显示问题的示例源代码:
执行上述代码的结果:
为什么值与预期不符,它们已在 InsertElement 函数中进行了修改,并且 dq 是通过引用传递的。我无法弄清楚上面的代码有什么问题? 很明显,不属于数组的 ele1 获得了在 InsertElement 函数内部分配的值,而不是数组。即使我们为它分配了 0 到 9 的值,数组似乎也未初始化。为什么会出现这种奇怪的行为?请帮我解释一下,我真的很困惑。
代码的另一个问题:由于 delete[] 而调用 Element 类的析构函数时,它会在程序结束时抛出异常。我以前修复过,但现在的代码正在导致异常。不知道为什么。
smart-pointers - 将原始指针中的内存分配给 shared_ptr 而不创建临时 shared_ptr
在以下代码中,方法 receivePointer 接收一个内存地址并使共享指针 ptr 指向该内存:
有没有办法更改 receivePointer 中的代码,使其不会创建临时共享指针?这样子看起来好难看。
c++ - 关于在另一个类中保留对 unique_ptr 的引用的问题
最近,我决定是时候深入研究智能指针了。我读到了不同的类型(独特的、共享的、弱的),但我不确定一件事。
假设我有一个班级Player
和一个GameMap
班级。这些类的内容与下一部分无关。我还有一个Engine
类,它表示将包含我的游戏主要组件的对象,如下所示:
这些是将创建的玩家和游戏地图的唯一实例,并且Engine
拥有它们,并且应该负责它们的分配和删除。因此,aunique_ptr
似乎是这里的不错选择。
现在,我想m_player
在我的GameMap
类中保留一个简单的引用,因为它比将 传递m_player
给需要它的每个函数对我来说更容易。
我的问题是:在类中使用原始指针(通过get()
方法获得)是保持对类中原始指针GameMap
的引用的最佳方式吗?unique_ptr
Engine
我认为我不能使用另一个unique_ptr
指向原始的,因为对于unique_ptr
.