C# 传递数组指针以放置在C+中的哈希映射中+; 我有点新的C++(来自C语言)。< /P>
我想将数据数组传递给函数(作为指针) 这些数据将被添加到hashmap(一些基于键值的对象)中 在C#中,我只需将传递的引用添加到字典中,就可以使用它了C# 传递数组指针以放置在C+中的哈希映射中+; 我有点新的C++(来自C语言)。< /P>,c#,c++,pointers,parameter-passing,native,C#,C++,Pointers,Parameter Passing,Native,我想将数据数组传递给函数(作为指针) 这些数据将被添加到hashmap(一些基于键值的对象)中 在C#中,我只需将传递的引用添加到字典中,就可以使用它了 C++中也可以这样做吗?或者我必须创建数据的副本,并且只将其添加到数据结构中以存储它 我在一些代码示例中见过这种模式,但我不能100%确定为什么需要它,或者在某些时候是否可以避免它。不确定您的密钥来自何处。。。但是std::map和std::unordered_map可能就是您要找的 现在,std::map的底层数据结构是一个二叉树,而std
C++中也可以这样做吗?或者我必须创建数据的副本,并且只将其添加到数据结构中以存储它
我在一些代码示例中见过这种模式,但我不能100%确定为什么需要它,或者在某些时候是否可以避免它。不确定您的密钥来自何处。。。但是
std::map
和std::unordered_map
可能就是您要找的
现在,std::map
的底层数据结构是一个二叉树,而std::unordered_map
是一个散列
<>代码> STD::unOrdEdEdMult/Cux>是C++ 11标准中的一个附加项。 < P>这完全取决于如何传递数据以及如何创建数据。如果数据是在堆上创建的(通过使用new),您可以将指向它的指针或引用放在表中。另一方面,如果函数按值获取参数,则需要在某个点进行复制,因为如果存储临时变量的地址,则会发生不好的事情:) 至于使用什么样的数据结构,以及它们如何工作,我发现最好的参考之一是 堆分配应该为特殊情况保留。堆栈分配更快、更易于管理,您应该仔细阅读(非常重要)。至于其他阅读,试着找出动态和自动内存分配的内容
<> P>刚刚发现读明确地说C + C++对你来说是完美的,好运C++可以成为更难学习的语言之一,所以不要假设任何事情都会和C语言中的一样。有一个不错的C语言和C++的东西,但是确切的数据结构与我的问题无关。我很想知道是否可以使用指针传递给其他对象,即使在这个方法返回之后(我不知道该指针之后会发生什么)。哦,是的,它什么也不做。没有垃圾收集。指针只存储在hashmap中。完成后,您必须删除指针中的内存。谢谢。你能给我指点一下C++中不同的分配选项的阅读材料吗?(堆对值)@麦角酸,C++中的一些窍门是,你可以有一个函数签名,它带有一个引用或指针,但并不意味着它是动态分配的。大多数人都说,如果你知道C++,你就不应该使用新的,你可以通过聪明的方法来管理C++。pointers@lysergic-酸为什么否决票我的票有问题吗answer@lysergic-酸好的,我不好,我想这是一个报复性的否决票,现在我的回答感觉没用了
void someFunc(byte *data)
{
// add this data to a hashmap.
Hashtable.put(key, data)
}