草庐IT

unique_token

全部标签

c++ - std::unique_ptr<T> 不完整类型错误

我有templateclassqueue{private:structnode{Tdata;std::unique_ptrnext;//compileerroronincompletetypenode(T&&data_):data(std::move(data_)){}};std::unique_ptrhead;node*tail;public:queue():tail(nullptr){}我在VS10的标记行上遇到编译错误。在这种情况下,我是否应该被允许使用不完整的类型(实例化模板-构造函数-这里以int为例)?有解决方法吗?编辑singlethreadedqueue.h(62):e

c++ - 为什么我会收到此错误 : expected ')' before '&' token?

我认为它与#includes有关,但这是我第一次尝试使用它们,所以我有点迷茫。我只是想知道是否有人可以立即判断是否存在明显的错误。/**@fileTranslator.cpp*/#include#include"Translator.h"#includeTranslator(std::ifstream&fin)//errorappearsonthisline{T1(fin);T1.createTable(fin);T2(fin);T2.createTable(fin));stringtemp;while(!fin.eof()){fin>>temp;message.push_back(t

c++ - 具有多态类型的 unique_ptr 未被删除

我有一个使用基类派生类型存储的unique_ptrvectorstd::unique_ptr>>decisionVariables;其中Variable是父类(superclass),派生类型是Route类。我的问题是,当包含decisionVariables的类被删除时,路由实例似乎没有被删除。路由来源于变量:#ifndef__VARIABLE__#define__VARIABLE__/***Interfacefordecisionvariables.*/#include#include#includeclassVariable{public:/***Returnsanindepen

c++ - Boost::tokenizer 点分开,但也保留空字段

我看过thisquestion和我的很像,但是又不一样,所以请不要标为重复。我的问题是:如何从字符串中获取空字段?我有一个类似std::strings="This.is..a.test";的字符串我想获得字段.我也试过typedefboost::char_separatorChSep;typedefboost::tokenizerTknChSep;ChSepsep(".",".",boost::keep_empty_tokens);TknChSeptok(s,sep);for(TknChSep::iteratorbeg=tok.begin();beg!=tok.end();++beg)

c++ - 试图仅在 C++ 中模拟 Matlab "unique"函数

我有以下vector,v=[9295]及其唯一元素c=[259]按升序排列。我想提取vectoru=[3132]。uvector包含vectorc中唯一元素的索引,从而重构vectorv。我的想法是遍历v并借助基于c的唯一值构建的哈希表来获取索引值。这有意义吗?如果是的话,你能请一些人在c++中提出一种方法吗?高度赞赏其他建议(我对有效的实现感兴趣,因为v和c矩阵足够大)。最好的问候,托特 最佳答案 C++的索引是从0开始的,这样写比较正确u={2,0,2,1};您可以使用标准算法来完成任务。例如(这里我假设vectorc已经以某种

SpringBootWeb 登录认证[Cookie + Session + Token + Filter + Interceptor]

目录1.登录功能1.1需求1.2接口文档1.3登录-思路分析1.4功能开发1.5测试2.登录校验2.1问题分析什么是登录校验?我们要完成以上登录校验的操作,会涉及到Web开发中的两个技术:2.2会话技术2.2.1会话技术介绍会话跟踪 2.2.2会话跟踪方案2.2.2.1方案一-CookieCookie这种会话跟踪技术的优缺点:跨域介绍:区分跨域的三个维度:2.2.2.2方案二-Session Session这种会话跟踪技术的优缺点:2.2.2.3方案三-Token令牌技术2.3JWT令牌2.3.1JWT介绍JWT的组成:(JWT令牌由三个部分组成,三个部分之间使用了两个英文的点来分割) JWT

c++ - 制作一个 const unique_ptr 然后尝试从它 std::move 给出相同的错误,就好像您试图访问复制构造函数一样

当我们尝试复制unique_ptr(例如,将一个唯一指针分配给另一个)时,我注意到错误是ErrorC2280std::unique_ptr#includeintmain(){std::unique_ptra=std::make_unique(2);std::unique_ptrb=a;}没关系,因为unique_ptr没有定义复制构造函数。您不会从唯一指针进行复制以在它们之间move(转移指针的所有权)。有趣的是(好吧,也许不是),这段代码抛出了同样的错误。现在我知道它是无效的(我将第一个unique_ptr声明为不可变对象(immutable对象)),但错误消息暗示它正在尝试调用复制

c++ - 引用 unique_ptr 的 vector

我有一组unique_ptr。在这里我想拿走其中的一些并将它们返回给调用者。调用者只需要读取内容,所以我想使用常量引用。但我不确定如何使用unique_ptr来做到这一点。这是我用来使用原始指针执行此操作的一些代码:classentry{};vectormaster;constvectorget_entries(){vectorentries;//peusocode,mastercontainsallentries.//onlysomeentriesarecopied,filteredbysomepredicatecopy_if(master.begin(),master.end(),

c++ - 你能初始化 unique_ptr 的 "static const vectors"吗? (C++17 与 GCC 7.3)

我正在尝试创建一个staticconst默认对象(规则)的列表太大而不能经常复制,因此我想将它们存储在vector中的unique_ptr.我注意到类似的问题已经进行了几次,但我不清楚这是否真的可行(我倾向于不可行)。即你不能使用initializer_list与unique_ptr因为对成员的访问是const导致复制操作。您不能通过引用传递临时变量,从而导致复制操作。因此两者:staticconststd::vector>kStrings={std::unique_ptr(newstd::string("String1")),std::unique_ptr(newstd::strin

c++ - std::unique_ptr 取得所有权前的测试

我有一个类,它基本上是一个队列,用于在2个线程之间传输动态分配的对象。第一个线程创建对象,第二个线程使用它们。我使用std::unique_ptr将对象所有权从线程1传递到线程2。实际上调用将对象放入队列的方法是这样的:queue.put(std::move(unique_ptr_to_my_object));和签名:boolQueue::put(std::unique_ptrp);问题是put()方法必须检查一些条件来决定是否可以将对象添加到队列中。如果条件为假,则该方法简单地返回false以指示它无法将对象添加到队列中,但该对象已被销毁,因为所有权已被put()获取。所以我想知道这