草庐IT

weak_library

全部标签

c++ - Boost Graph Library 中的顶点描述符和索引有什么区别?

在Boost图形库中,什么时候应该使用顶点描述符,什么时候使用索引?由于vertex_descriptor的实现实际上是无符号整数,那么这两个东西是否具有相同的值? 最佳答案 vertex_descriptor仅在您使用vector(或类似的)作为顶点的基础数据结构(即boost::vecS)时作为索引。如果您使用不同的底层数据结构,则顶点描述符不一定是索引。例如,如果您使用std::list/boost::listS-列表不使用基于索引的访问方法。相反,每个vertex_descriptor将改为指向列表项的指针。因此,每次你想在

c++ - 最好返回 C++ 引用或 weak_ptr?

假设我有一个类,我希望用户能够在其中引用我的成员之一。哪个更受欢迎?classMember;classClassWithWeakPtr{private:boost::shared_ptr_member;public:boost::weak_ptrGetMember();};或classMember;classClassWithCppReference{private:Member_member;public:Member&GetMember(){return_member;}};你怎么看?什么时候比另一个更好? 最佳答案 为什么不返

c++ - 从原始指针创建 weak_ptr<>

我想将原始指针成员包装到一些智能指针,以防止在开发类中删除。指针下对象的所有者在类之外。所以,看起来像boost::shared_ptr和std::auto_ptr不适合。以下是简化的示例:classFoo{boost::weak_ptrm_bar;public:voidsetBar(constBar*bar){//barcreatedonheapm_bar=bar;//naturallycompilationerror}};当然会导致编译错误。从原始指针(如果存在)初始化weak_ptr的正确方法是什么? 最佳答案 你不能那样做,

c++ - Visual Studio 2015 : Compile C/C++ without a runtime library

有没有一种方法可以在不使用任何运行时库的情况下使用VisualStudio2015编译C/C++?我需要在没有运行时库的情况下进行编译,因为我正在创建自己的运行时库(用于我的操作系统)。在C/C++->CodeGeneration->RuntimeLibrary上有选项但我想要一个显示“无”的选项。我知道失去了CRT中的许多功能。 最佳答案 要在没有C运行时库(CRT)的情况下编译您的应用程序,请使用/MT、/NODEFAULTLIB链接器选项并在Linker->Advanced处重新定义入口点->入口点在您的代码中定义的函数,例如

c++ - 如何使用 Boost Filesystem Library v3 确定文件是否包含在路径中?

如何确定文件是否包含在boost文件系统v3的路径中。我看到有一个lesser或greater运算符,但这似乎只是词法上的。我看到的最佳方式如下:取文件和路径的两个绝对路径删除文件的最后一部分并查看它是否等于路径(如果是则包含)有没有更好的方法来做到这一点? 最佳答案 以下函数应确定文件名是否位于给定目录中的某个位置,作为直接子目录还是在某个子目录中。boolpath_contains_file(pathdir,pathfile){//Ifdirendswith"/"andisn'ttherootdirectory,thenthef

c++ - weak_ptr 如何知道共享资源已过期?

考虑以下代码:#include#includeusingnamespacestd;structMySharedStruct{inti;};voidprint_value_of_i(weak_ptrweakPtr){if(shared_ptrsp=weakPtr.lock()){coutisharedPtr(newMySharedStruct());sharedPtr->i=5;weak_ptrweakPtr;weakPtr=sharedPtr;print_value_of_i(weakPtr);sharedPtr.reset(newMySharedStruct());//i=10;pr

c++ - 缺少 shared_ptr 和 weak_ptr 之间的相等性

虽然我明白为什么shared_ptr和unique_ptr没有operator==,但我想知道为什么没有shared_ptr和weak_ptr。特别是因为您可以通过对shared_ptr的引用创建一个weak_ptr。我假设在99%的时间里您都需要lhs.get()==rhs.get()。我现在会继续将其引入我的代码,除非有人能给我一个很好的理由,为什么不应该做这样的事情。 最佳答案 weak_ptr没有get()方法,因为您需要在访问底层指针之前显式锁定weak_ptr。明确这一点是一个深思熟虑的设计决定。如果转换是隐式的,那么很

mysql library DB实操练习

1.1查询库存表中的书号和库存状态列,要求消除重复行mysql>uselibrarydb;Databasechangedmysql>selectdistinct书号,库存状态from库存表;+-------+----------+|书号 |库存状态|+-------+----------+|A0120|在馆    ||A0120|借出    ||A0134|在馆    ||A0134|借出    ||B1101|在馆    ||C1269|丢失    ||C1269|借出    ||C3256|借出    ||C3256|在馆    |+-------+----------+9rowsinse

如何使用Selenium2Library输入PayPal的电子邮件和密码?

我正在尝试使用我的机器人框架脚本将电子邮件和密码输入PayPal(沙盒模式)。这是我的代码的片段:inputtextlogin_email${email}inputtextlogin_password${password}login_email是个姓名的输入电子邮件的字段,login_password是用于密码。我正在通过电子邮件${email}参数和密码${password}争论。由于某种原因,这似乎不起作用。我一直遇到这个错误:InvalidElementStateException:消息:元素当前不可交互,可能无法操纵PayPal的电子邮件和密码字段是在页面加载时生成的。这是为什么他们无

【C++】C++11——智能指针、内存泄漏、智能指针的使用和原理、RAII、auto_ptr、unique_ptr、shared_ptr、weak_ptr

文章目录C++117.智能指针7.1内存泄漏7.2智能指针的概念7.3智能指针的使用7.3.1auto_ptr7.3.2unique_ptr7.3.3shared_ptr7.3.4weak_ptrC++117.智能指针7.1内存泄漏  什么是内存泄漏:  内存泄漏指因为疏忽或错误造成程序未能释放已经不再使用的内存的情况。内存泄漏并不是指内存在物理上的消失,而是应用程序分配某段内存后,因为设计错误,失去了对该段内存的控制,因而造成了内存的浪费。  内存泄漏通常由于程序在设计上的缺陷或错误,例如动态分配内存后,未在合适的时间或无法正确释放该段内存,而导致的。内存泄漏通常需要程序员通过分析程序源代码