草庐IT

STD_LOGIC_VECTOR

全部标签

c++ - 在 C++11 中将 std::vector 移动到 std::deque

如果我有std::deque和std::vector并想将它们组合成std::deque,我可以通过以下方式做到这一点:typedefintT;//typeintwillservejustforillustrationstd::dequedeq(100);//justsomerandomsizeherestd::vectorvec(50);//...doingsomefilling...//nowmovingvectortotheendofqueue:deq.insert(deq.end(),std::make_move_iterator(vec.begin()),std::make_

C++ Vector Template Per-Component 操作

我正在重写项目的vector数学部分,我想根据vector的类型和维数来概括vector。vector表示类型为T的N维vector。templatestructvector{Tdata[N];};我需要重写许多数学函数,其中大部分将在每个组件的基础上运行。加法运算符的直接实现如下所示。templatevectoroperator+(vectorlhs,vectorrhs){vectorresult;for(inti=0;i我的问题:有没有办法(通过模板技巧?)在不使用for的情况下实现它循环和一个临时变量?我知道编译器很可能会展开循环并将其优化掉。我只是不喜欢以这种方式实现所有对性能

c# - 在 C# 中编写 C++ std::reverse 等效项的最接近方法是什么?

reverseC++标准库中的算法等同于templatevoidreverse(BidirectionalIteratorfirst,BidirectionalIteratorlast){while((first!=last)&&(first!=--last)){std::iter_swap(first,last);++first;}}根据http://www.cplusplus.com/reference/algorithm/reverse/.我想用C#编写等价物:publicvoidReverse(Tfirst,Tlast){//...}首先,你如何传入两个对IEnumerator

c++ - std::function 参数列表和 typedef

我有一个类似这样的typedef:typedefstd::functionMyFunction;在我的代码中某处是这样使用的:MyFunctionfunc=[](intarg1,floatarg2){/*dosometing*/};问题是,每次我更改函数的参数数量(例如,我添加第三个参数chararg3)时,我都被迫在我使用MyFunction的所有代码中更新它(即使这些根本不使用参数。而且我懒得那样做。有没有办法从它的类型中获取std::function的参数列表?(我的意思是)这样函数创建看起来像那样?:MyFunctionfunc=[](MyFunction::args){/*d

c++ - std::future 或 std::shared_future 等待多线程

我有一个线程从容器中获取每个元素并向数据库发送上传请求。上传是同步完成的。容器中的元素是金融合约,它们可能有也可能没有与之关联的数据结构调用ticktable。现在,对于那些有ticktable的合约,我必须进行两次上传。1)首先将ticktable上传到db。db返回一个id。2)将id附加到契约(Contract)上,然后上传契约(Contract)。因此,例如,如果我循环遍历包含100个合约的容器,假设其中30个具有ticktable,其余70个没有。我想弄清楚std::future或std::shared_future是否适合这样的任务?我尝试通过将future与30个合约中的

c++ - 什么时候使用 std::unordered_map::emplace_hint?

我知道如何使用std::unordered_map::emplace,但如何使用emplace_hint?都不是cplusplus也不cppreference提供一组示例来说明我们如何知道将元素放在哪里。任何人都可以提供一些这方面的信息或提供一些示例/说明,说明我们什么时候可以知道放置的元素应该放在哪里吗? 最佳答案 unordered_map可以做什么可能与提示有关吗?好吧,如果迭代器使用与emplace_hint的元素相同的键来寻址一个元素。已被要求插入,然后它可能会很快失败-只是一个键比较,没有任何散列或在该桶中的任何散列冲突

python - 为什么不能使用 std::ref 将对象传递到 Boost.Python 模块中?

环境:使用Python3.5编译的Boost1.61.0以下C++代码输出12:classA{public:intfunc(){return12;}};BOOST_PYTHON_MODULE(bridge){usingnamespaceboost::python;class_("A",no_init).def("func",&A::func);}intmain(){Aa;PyImport_AppendInittab("bridge",PyInit_bridge);Py_Initialize();usingnamespaceboost::python;dictdictMain=extra

c++ - std::thread 在使用参数创建时抛出访问冲突异常?

关闭。这个问题需要debuggingdetails.它目前不接受答案。编辑问题以包含desiredbehavior,aspecificproblemorerror,andtheshortestcodenecessarytoreproducetheproblem.这将有助于其他人回答问题。关闭6年前。Improvethisquestion我正在使用VS2015,在使用std::thread时遇到一个非常奇怪的问题。voidKlass::myfunc(inta,intb){std::cout它在Debug模式下运行良好,但当我转到Release模式时抛出“访问冲突异常”。此外,如果我尝试将

c++ - 使用数组 vector 的正确方法

有人能告诉我使用数组vector的正确方法是什么吗?我声明了一个数组vector(vector)但得到了error:conversionfrom'int'tonon-scalartype'float[4]'requested当试图resize它。出了什么问题? 最佳答案 您不能将数组存储在vector或任何其他容器中。要存储在容器中的元素类型(称为容器的值类型)必须是可复制构造和可赋值的。数组两者都不是。但是,您可以使用array类模板,例如Boost、TR1和C++0x提供的类模板:std::vector>(您需要将std::ar

c++ - 一个尾数下标的明显规范不足:对于原始数组和 std::vector。已经果断解决了吗?

它以前曾以各种形式被问过,但由于语言规范在这方面似乎是动态的(或者至少是当一些关于这个问题的SO讨论发生时动态的),它根据任何最新的发展(如果有的话)重新审视这个问题可能是有意义的。因此,问题又是,&和下标的组合是否是获取指向数组的假想尾后元素的指针的有效方法inta[42]={};&a[42];它在C++98中被认为是未定义的。但是现代C++呢?我们已经看到DR#232,但出于某种原因仍处于“起草”状态,并且绝对不在标准文本中(自C++14起)。问题是否仍然悬而未决,还是已通过其他方式解决?有趣的是DR#315似乎公开允许通过空指针调用非静态成员函数p(!)基于“*p在p为空,除非左