草庐IT

validate_unique

全部标签

c++ - 将 unique_ptr 添加到 vector 中的类会导致 3 倍 boost

背景我有一个大图(100k个节点),其中每个节点必须为每个出边存储一些信息。而不是将其保存在std::vector中,我正在使用dynamic_bitset从Boost1.58开始,可以执行按位运算。每个节点还保留一个指向某个多态对象的指针。一个最小的例子看起来像这样,structNode{std::vectorsucc;boost::dynamic_bitsetsucc_flags;std::unique_ptrdata;};问题考虑这个简单的基准程序,它创建和销毁一个图:#include#include#includeconstexprintN=50000;structNode{s

c++ - 将 unique_ptr 添加到 vector 中的类会导致 3 倍 boost

背景我有一个大图(100k个节点),其中每个节点必须为每个出边存储一些信息。而不是将其保存在std::vector中,我正在使用dynamic_bitset从Boost1.58开始,可以执行按位运算。每个节点还保留一个指向某个多态对象的指针。一个最小的例子看起来像这样,structNode{std::vectorsucc;boost::dynamic_bitsetsucc_flags;std::unique_ptrdata;};问题考虑这个简单的基准程序,它创建和销毁一个图:#include#include#includeconstexprintN=50000;structNode{s

MySQL修改安全策略时报错:ERROR 1193 (HY000): Unknown system variable ‘validate_password_policy‘的解决方法

我使用的版本是MySQL5.73,环境是LinuxCentOS7,其他版本不知道是否可行,望谅解。    当我们想设置简单的密码的时候,看了别人发的如何修改安全策略的代码,如下:setglobalvalidate_password_policy=0;setglobalvalidate_password_length=1;    但是当我们使用的时候,却报了这样一个错误:    这是说你启动没有安全检查插件    启动方法如下:    首先打开/etc/my.cnf,然后在[mysqld]的下方加入如下代码:plugin-load-add=validate_password.sovalidate

c++ - make_unique 值是否初始化 char 数组

例如-#includeintmain(){constautobufSize=1024;autobuffer=std::make_unique(bufSize);}这里的缓冲区是否已经填充了'\0'字符,或者我必须手动填充它以避免垃圾值。有什么可能的方法来做到这一点,std::memset(&buffer.get(),0,bufSize)就足够了吗? 最佳答案 如果您不提供构造函数参数,则所有make_*函数都会对类型使用值初始化。由于make_unique的数组形式不带任何参数,它会将元素清零。

c++ - make_unique 值是否初始化 char 数组

例如-#includeintmain(){constautobufSize=1024;autobuffer=std::make_unique(bufSize);}这里的缓冲区是否已经填充了'\0'字符,或者我必须手动填充它以避免垃圾值。有什么可能的方法来做到这一点,std::memset(&buffer.get(),0,bufSize)就足够了吗? 最佳答案 如果您不提供构造函数参数,则所有make_*函数都会对类型使用值初始化。由于make_unique的数组形式不带任何参数,它会将元素清零。

c++ - 如何初始化一个unique_ptr

我正在尝试向我的类(class)添加延迟初始化函数。我对C++不是很精通。谁能告诉我我是如何实现的。我的类(class)有一个私有(private)成员定义为:std::unique_ptranimal;这是带有一个参数的原始构造函数:MyClass::MyClass(stringfile):animal(newAnimal(file)){}我刚刚添加了一个无参数构造函数和一个Init()函数。这是我刚刚添加的Init函数:voidMyClass::Init(stringfile){this->animal=???;}我需要在那里写什么才能使它等同于构造函数正在做的事情?

c++ - 如何初始化一个unique_ptr

我正在尝试向我的类(class)添加延迟初始化函数。我对C++不是很精通。谁能告诉我我是如何实现的。我的类(class)有一个私有(private)成员定义为:std::unique_ptranimal;这是带有一个参数的原始构造函数:MyClass::MyClass(stringfile):animal(newAnimal(file)){}我刚刚添加了一个无参数构造函数和一个Init()函数。这是我刚刚添加的Init函数:voidMyClass::Init(stringfile){this->animal=???;}我需要在那里写什么才能使它等同于构造函数正在做的事情?

c++ - 将 std::list<std::unique_ptr> 移动到 vector 中尝试引用已删除的函数

这是一个完整的程序,可以重现我的问题。#include#include#include#includeintmain(){std::vector>>v;std::list>l;l.push_back(std::make_unique(0));l.push_back(std::make_unique(1));v.push_back(std::move(l));//error}在最后一行,编译器提示std::unique_ptr的deleted复制构造函数被引用。由于我将列表移动到vector中,我假设不会对列表的元素调用任何复制构造函数。为什么会这样?我将如何解决它?我正在使用MSVC2

c++ - 将 std::list<std::unique_ptr> 移动到 vector 中尝试引用已删除的函数

这是一个完整的程序,可以重现我的问题。#include#include#include#includeintmain(){std::vector>>v;std::list>l;l.push_back(std::make_unique(0));l.push_back(std::make_unique(1));v.push_back(std::move(l));//error}在最后一行,编译器提示std::unique_ptr的deleted复制构造函数被引用。由于我将列表移动到vector中,我假设不会对列表的元素调用任何复制构造函数。为什么会这样?我将如何解决它?我正在使用MSVC2

c++ - _Block_Type_Is_Valid (pHead->nBlockUse) 错误

我一直在从事一个新项目,但遇到了一个我不知道为什么会失败的问题。当我执行此行删除textY时,给我错误_Block_Type_Is_Valid(pHead->nBlockUse)。那我做错了什么?这是源代码:Text.h#ifndefTEXT_H#defineTEXT_Htypedefboost::shared_ptrFontPtr;classText{public:Text(FontPtrfont,char*text){str=newchar[35];this->font=font;str=text;}Text(constText&cSource);Text&operator=(co