草庐IT

UINT_PTR

全部标签

c++ - 我应该使用 shared_ptr 还是 unique_ptr?

这个问题在这里已经有了答案:WhichkindofpointerdoIusewhen?(4个回答)关闭9年前。我有一个关于std::unique_ptr的问题和std::shared_ptr.我知道有很多关于何时使用哪一个的问题,但我仍然不确定我是否理解正确。我在某处读到智能指针的默认选择应该是std::unique_ptr,但据我了解,出于我的需要,我应该使用std::shared_ptr。例如,我有:classB;classA{private:B*b;public:B*getB();};A::getB(){returnb;}所以基本上A类拥有指向B类型对象的指针,并且有一个方法可以

c++ - 我应该使用 shared_ptr 还是 unique_ptr?

这个问题在这里已经有了答案:WhichkindofpointerdoIusewhen?(4个回答)关闭9年前。我有一个关于std::unique_ptr的问题和std::shared_ptr.我知道有很多关于何时使用哪一个的问题,但我仍然不确定我是否理解正确。我在某处读到智能指针的默认选择应该是std::unique_ptr,但据我了解,出于我的需要,我应该使用std::shared_ptr。例如,我有:classB;classA{private:B*b;public:B*getB();};A::getB(){returnb;}所以基本上A类拥有指向B类型对象的指针,并且有一个方法可以

时间:2019-05-10 标签:c++uint,unsignedint,int

您好,我有一个程序处理大量vector和这些vector元素的索引,我想知道:uint和unsignedint有区别吗最好使用上述类型之一或仅使用int因为我读到有人说编译器确实更有效地处理int值,但如果我使用int我必须始终检查是否有负idxs,这很痛苦。您认为迭代器更好吗?它比普通索引vectorx[idx]更有效吗?p.s该软件将处理大数据处理,必须具备良好的性能 最佳答案 C++没有定义像uint这样的类型。这必须是“您的”类型,即在您的代码或某个第三方库中定义的类型。可以猜到它与unsignedint相同。可能是unsi

时间:2019-05-10 标签:c++uint,unsignedint,int

您好,我有一个程序处理大量vector和这些vector元素的索引,我想知道:uint和unsignedint有区别吗最好使用上述类型之一或仅使用int因为我读到有人说编译器确实更有效地处理int值,但如果我使用int我必须始终检查是否有负idxs,这很痛苦。您认为迭代器更好吗?它比普通索引vectorx[idx]更有效吗?p.s该软件将处理大数据处理,必须具备良好的性能 最佳答案 C++没有定义像uint这样的类型。这必须是“您的”类型,即在您的代码或某个第三方库中定义的类型。可以猜到它与unsignedint相同。可能是unsi

c++ - std::unique_ptr、删除器和 Win32 API

在VC2012中,我想在构造函数中使用唯一指针和删除器创建互斥锁,这样我就不需要创建析构函数来调用CloseHandle。我原以为这会起作用:structfoo{std::unique_ptrm_mutex;foo():m_mutex(CreateMutex(NULL,FALSE,NULL),CloseHandle){}}但在编译时出现错误:errorC2664:'std::unique_ptr::unique_ptr(void*,int(__cdecl*const&)(HANDLE))throw()':cannotconvertparameter1from'HANDLE'to'voi

c++ - std::unique_ptr、删除器和 Win32 API

在VC2012中,我想在构造函数中使用唯一指针和删除器创建互斥锁,这样我就不需要创建析构函数来调用CloseHandle。我原以为这会起作用:structfoo{std::unique_ptrm_mutex;foo():m_mutex(CreateMutex(NULL,FALSE,NULL),CloseHandle){}}但在编译时出现错误:errorC2664:'std::unique_ptr::unique_ptr(void*,int(__cdecl*const&)(HANDLE))throw()':cannotconvertparameter1from'HANDLE'to'voi

c++ - 你如何让 std::shared_ptr 不调用 delete()

我有将std::shared_ptr作为参数的函数,所以我被迫使用std::shared_ptr,但我传递给函数的对象不是动态分配的。如何将对象包装在std::shared_ptr中并让std::shared_ptr不对它调用delete。 最佳答案 MyTypet;nasty_function(std::shared_ptr(&t,[](MyType*){})); 关于c++-你如何让std::shared_ptr不调用delete(),我们在StackOverflow上找到一个类似的

c++ - 你如何让 std::shared_ptr 不调用 delete()

我有将std::shared_ptr作为参数的函数,所以我被迫使用std::shared_ptr,但我传递给函数的对象不是动态分配的。如何将对象包装在std::shared_ptr中并让std::shared_ptr不对它调用delete。 最佳答案 MyTypet;nasty_function(std::shared_ptr(&t,[](MyType*){})); 关于c++-你如何让std::shared_ptr不调用delete(),我们在StackOverflow上找到一个类似的

c++ - 这篇关于shared_ptr的use_count()的Standardese是什么意思?

在试图解决thisquestion中显示的问题时我发现自己陷入了[util.smartptr.shared]/4中的以下句子:[...]Changesinuse_count()donotreflectmodificationsthatcanintroducedataraces.我不明白我应该怎么读,我会得出什么结论。以下是一些解释:调用use_count()不会引入数据竞争(但这应该由该函数的const-ness以及相应的库范围保证来保证)use_count()返回的值不受(“不反射(reflect)”?)需要原子性或同步的操作结果的影响(但这些相关操作是什么?)use_count()

c++ - 这篇关于shared_ptr的use_count()的Standardese是什么意思?

在试图解决thisquestion中显示的问题时我发现自己陷入了[util.smartptr.shared]/4中的以下句子:[...]Changesinuse_count()donotreflectmodificationsthatcanintroducedataraces.我不明白我应该怎么读,我会得出什么结论。以下是一些解释:调用use_count()不会引入数据竞争(但这应该由该函数的const-ness以及相应的库范围保证来保证)use_count()返回的值不受(“不反射(reflect)”?)需要原子性或同步的操作结果的影响(但这些相关操作是什么?)use_count()