草庐IT

强引用

全部标签

c++ - C++11容器/适配器属性的实用总结/引用?

已结束。此问题是off-topic.它目前不接受答案。想要改进这个问题?Updatethequestion所以它是on-topic堆栈溢出。关闭9年前。Improvethisquestion我正在寻找各种C++11标准容器和容器适配器(可选地还包括boost/Qt)的重要属性的综合摘要/引用,但由这些属性索引而不是比通常的每个容器文档(更多内容见下文)。我想到的属性包括:插入功能(前/后/任意)。移除功能(正面/背面/任意)。访问能力(前/后/单/双向遍历/随机访问)。上述操作的复杂性,以及迭代器失效规则。独特性?订购?联想?连续存储?提前预订?我可能忘记了一些在这种情况下不要犹豫评论

c++ - 当您只需要这些参数之一时,使用通过引用传递的不同参数调用函数的最佳方法

这是一个简单的问题:如果我必须调用这样的方法,例如:voidgetBounds(float&xmin,float&ymin,float&zmin,float&xmax,float&ymax,float&zmax)如果我只需要存储在xmax中的信息,调用该方法的正确方法是什么?我不想创建我不会使用的变量。有没有办法做到这一点?假设做我想做的事情的错误方法是这样的:floatxmax;getBounds(nullptr,nullptr,nullptr,xmax,nullptr,nullptr);现在我正在使用虚拟垃圾变量,但也许还有另一种方法。提前致谢。编辑:抱歉,我忘了说我无法编辑该方法

c++ - 通过引用 C++ 中的基类循环遍历派生类

不好意思,如果之前有人问过这个问题,刚学C++,搜索了一下,不知道关键字是什么。可以这样做吗?classCar{public:voidaddColor(stringc){color=c;}private:stringcolor;}classHonda:publicCar{}classToyota:publicCar{}intmain(){vectorv;Honda*car1=newHonda();car1.addColor("green");Toyota*car2=newToyota();car2.addColor("blue");v.push_back(car1);v.push_ba

c++ - xvalue 的生命周期绑定(bind)到引用扩展与否?

显然在这个问题上编译器之间存在一些混淆和差异:http://social.msdn.microsoft.com/Forums/vstudio/en-US/3c754c4e-5471-4095-afae-795c1f411612/rvalue-refs-extended-lifetime-inconsistent-with-gccstandard根据这篇文章:Whatarervalues,lvalues,xvalues,glvalues,andprvalues?Xvalues是rvalues(连同prvalues)并且标准说:Thesecondcontextiswhenareferenc

c++ - 通过类函数返回引用并在 C++ 中返回整个对象?

类CVector中的运算符重载:CVectorCVector::operator+(CVectorparam){CVectortemp;temp.x=x+param.x;temp.y=y+param.y;return(temp);}主要是:CVectora(3,1);CVectorb(1,2);CVectorc;c=a+b;所以一个对象是按值传递的,然后另一个临时对象正在被创建。我猜b是按值传递的,a是调用+的那个,因此x和y属于a,pram.x和param.y属于b。返回temp并且复制赋值运算符将temp的值传递给c?但是这个呢:CVector&CVector::operator=

c++ - 如何将对子矩阵 View 的持久引用作为函数参数传递?

我有兴趣将矩阵的subview传递给其他对象(或函数),以便对象/函数可以修改列/矩阵的定义段。我目前正在使用armadillo库,我可以获得并使用对单个矩阵条目的引用(下面的函数f)。我正在寻找一种有效的方法来传递对subview的引用。我认为下面的函数h的代码实现了这个目标,但我不确定。我的主要问题是:假设我想要一个存储在类中的引用(不仅仅是在h中的函数中使用),有没有办法改进函数h下面?三个不太重要的后续问题是:1)这可以在编写接受arma::Col类型参数的函数而不是指定subview时完成吗?2)如果没有,是否有另一个C++矩阵库允许这种事情而不明确地说明subview?(我

c++ - 为什么不能形成对 'decltype(auto)' 的引用

intmain(){decltype(auto)&&a=100;}以上代码,在GCC和Clang中出错。intmain(){decltype(int)&&a=100;}此代码正确。在N4296中,在§8.3.2/6Ifatypedef(7.1.3),atypetemplate-parameter(14.3.1),oradecltype-specifier(7.1.6.2)denotesatypeTRthatisareferencetoatypeT,anattempttocreatethetype“lvaluereferencetocvTR”createsthetype“lvaluere

c++ - 按值或 const 引用传递函数?

我应该按值还是按对一个函数的引用来传递std::string。此函数将此值存储在类的成员变量中。当谈到值传递或引用传递时,我总是感到困惑。请消除我对此的困惑。代码如下:classDataStore{public:voidaddFile(conststring&filename,constset&filePaths){if(dataStoreMap.insert(make_pair(filename,filePaths)).second){cout>dataStoreMap;};我应该像这样声明函数吗:voidaddFile(conststring&filename,constset&f

c++ - 将 unique_ptr 引用传递给 boost::bind?

我在CentOS6.6(gcc4.4.7)上使用Boost.Asio(1.41)进行开发。我希望io_service在启动时调用manger对象m中的成员函数run()。我尝试编译的代码如下所示:#include#include#includeboost::asio::io_serviceio;std::unique_ptrm;m=std::make_unique;io.post(boost::bind(&manager::run,&m));gcc对boost::bind语句进行了调整,其中包括:/usr/include/boost/bind/mem_fn_template.hpp:4

c++ - Boost 引用变体和相等性比较

以下程序中止:#includeusingvariant_type=boost::variant;intmain(){inta,b;variant_typev(a),u(b);v==u;return0;}与:$g++-std=c++14t.cpp&&./a.outa.out:/opt/boost/default/include/boost/variant/detail/forced_return.hpp:39:Tboost::detail::variant::forced_return()[withT=constint&]:Assertion`false'failed.Aborted(c