草庐IT

auto_mapping

全部标签

c++ - vector 和 map 抛出异常

我的任务是输出所有十位数字,其中数字不重复。我首先使用的是这样的东西:#include#include#include#include#includeusingnamespacestd;voidTask5(){autoinitialization=[](map*m,intcount){for(inti=0;i*m,intcount,intvalue){for(inti=9;i>count;--i)m[count][i][value]=false;};/*Forcreatecopymap*/automould=[](map*m,map*m_copy,intcount)->map*{if(

c++ - 我可以使用 auto 或 decltype 代替尾随返回类型吗?

我发现尾随返回类型很容易定义返回复杂类型的函数的返回值,例如:autoget_diag(int(&ar)[3][3])->int(&)[3]{//usingtrailingreturntypestaticintdiag[3]{ar[0][0],ar[1][1],ar[2][2]};returndiag;}auto&get_diag2(int(&ar)[3][3]){//adding&autobecauseotherwiseitconvertsthearraytopointerstaticintdiag[3]{ar[0][0],ar[1][1],ar[2][2]};returndiag;

c++ - 出于性能原因替代 stdext::hash_map

我正在开发一个高性能应用程序,其中所有调用都必须合理。我有一张map,在每次交易开始时使用一次来进行我想改进的查找。map在启动时加载,之后不会改变。下面映射中的键是一个std::string但如果需要它可以更改为char数组。C或C++作为解决方案很好。typedefstdext::hash_mapsymbols_t;有没有人知道任何其他可以消除查找或更快的解决方案?提前感谢您的帮助。来自编辑的附加信息:1.hash_map目前有35万个元素。2.每个键值的长度通常在4到10个字符之间。3.从第三方API接收回调信息。回调被赋予一个符号,在进行map查找时用作键值。软件的其余部分由m

C++——这里是否存在从 Fred* 到 auto_ptr<Fred> 的隐式转换?

我看到了下面的代码,#include#includeusingnamespacestd;classFred;//Forwarddeclarationtypedefauto_ptrFredPtr;classFred{public:staticFredPtrcreate(inti){returnnewFred(i);//Isthereanimplicitcastinghere?Ifnot,howcanwereturn//aFred*withreturnvalueasFredPtr?}private:Fred(inti=10):i_(i){}Fred(constFred&x):i_(x.i_

c++ - 使 std::map key const 有意义吗?

这个问题在这里已经有了答案:Whatisdifferencebetweenconstandnonconstkey?(7个答案)关闭9年前。定义std::map时,将键类型设置为const是否有意义?

C++ std::map,键的旋转

我需要在map中实现类似“第一键轮换”的功能。对问题的更详细的解释。有一张map:std::maptest;插入了以下元素:test[0.5]=15;test[1]=20;test[2.3]=12;test[3.7]=18旋转算法可以重写为:a]记住map中的第一个元素(key最低的元素):rem_el=map[0]//记法b]从map中删除第一个元素c]为map中所有剩余元素设置新键:map[i].key=map[i].key-rem_el.keyd]使用新键将记住的键添加到map:最后一个键和记住的键的总和test[rem_el.key+test[n-1].key]=rem_el.

c++ - 从 map 容器中查找第一个大于用户指定值的值

我有一个map容器。如何使用find_if返回第一个大于用户指定搜索值的值,如下所示:std::map::iteratorit=find_if(Mymap.begin(),Mymap.end(),......非常感谢! 最佳答案 您确定要通过容器对任何值大于您的条件的项目进行线性搜索吗?最好还保留一个可以调用upper_bound的排序值的单独索引,以对数时间执行而不是元素数量的线性执行。或者查看boost::multi_index。 关于c++-从map容器中查找第一个大于用户指定值的

c++ - 我应该明确地零初始化 auto_ptr 吗?

我的一些同事更喜欢在构造函数初始化列表中将std::auto_ptr显式初始化为0,但它会被初始化为0在它的构造函数中没有任何显式初始化。那么有什么理由这样做吗?#includeclassA{A():SomePtr(0){}private:std::auto_ptrSomePtr;}; 最佳答案 不,std::auto_ptr的默认构造函数正是这样做的,因此没有必要显式地这样做。无论如何,这是风格问题,您应该保持一致。例如,您是否会在构造函数初始化列表中显式调用成员vector的默认构造函数?作为旁注,std::auto_ptr在即

c++ - 我可以创建一个 auto_ptr 数组吗?

我有一个基类,它被多个派生类继承。我想创建baseClass指针的自动指针数组。当我初始化那些自动指针时,我遇到了一些编译时错误,然后我尝试这样做std::auto_ptrpbase[3];std::auto_ptrb1(newderived1());std::auto_ptrb2(newderived2());std::suto_ptrb3(newderived3());pbase[0]=b1;pbase[1]=b2;pbase[2]=b3;它工作正常,我修复了内存泄漏问题,而我是一个窗口,我不使用valgrind,我使用boost框架来解决泄漏问题。对于编译错误:classA{pu

c++ - 错误 : no match for ‘operator<’ in ‘__x < __y’ when trying to insert in two map

在代码中有两个映射。一个存储对和另一个存储,其中值是具有5个变量的类,数据类型为字符串、整数、字符串、整数、整数。但是在插入第二个映射期间,我收到错误g++错误:尝试在map中插入时,'__x如何解决。classValues{private:std::stringC_addr;intC_port;std::stringS_addr;intS_port;intC_ID;public:Values(std::string,int,std::string,int,int);voidprintValues();};Values::Values(std::stringCaddr,intCport