草庐IT

auto_mapping

全部标签

c++ - 初始化 auto-inc 类型 vector 的 vector 时出现问题

我正在尝试生成一个包含递增数字的单元格的二次网格。#include#includeclassSimple{public:Simple():id(genId()){}staticintgenId(){staticintg_id=0;return++g_id;}intid;};typedefstd::vector>SimpleGrid;voidprintSimpleGrid(SimpleGrid&grid){for(inti=0;irow(dim);test[i]=row;}printSimpleGrid(test);return0;}我得到这个输出:111222333这与我的预期不同:1

c++ - auto a = A(3) 和 A a(3) 有什么区别?

假设我有:structA{A(intx):m_x(x){}A(A&&)=delete;intm_x;}和:Aa(3);//Okautoa=A(3);//Error:functionA(int&&)cannotbereferenced-it'sadeletedfunction为什么后者会调用移动构造函数?为什么这2个语句在生成的代码方面不同? 最佳答案 autoa=A(3);与Aa=A(3);相同,因为右侧的类型是A。这意味着它的样子:A(3)创建一个临时的A,用3初始化,然后是Aa=_____表示:创建一个名为a的A并使用_____

c++ - auto 作为函数参数

在C++14中,这样的事情是合法的(对于lambdas):-autol=[](autox,autoy){returnx+y;};但是这样的事情仍然是不合法的:-autosum(autox,autoy){returnx+y;}我的好奇心是为什么没有将第二个添加到标准中(尽管它应该有望添加到C++17中)?第二个的优点和缺点是什么? 最佳答案 它没有被添加,因为添加是另一回事,而且时间不是无限的。我们不能指望一次性添加所有有用的增强功能,对吗?正如您所确定的,它将在C++17中。 关于c++

C++11 在 map<key, value> 中为值(int 和 string)存储多种数据类型的最简单方法?

我想要一个使用的map键字符串值的整数或字符串像这样:std::mapmyMap;myMap["first_key"]=10;myMap["second_key"]="stringValue";做这种事情的最简单方法是什么?已添加)我正在寻找适用于C++11的解决方案 最佳答案 在c++17中,你可以使用std::variant,在此之前,您可以使用boost中的那个:usingIntOrString=std::variant;std::mapmyMap;myMap["first_key"]=10;myMap["second_key

c++ - 在 C++0x 标准中会有 unordered_map,这与 boost unordered_map 相比如何?

哪个更有效率?有什么好的基准吗? 最佳答案 C++11的std::unordered_map规范类似于基于tr1::unordered_map的boost::unordered_map。话虽这么说,还是有一些细微的差别。在C++11中添加右值引用会导致添加可能对性能有用的emplace和emplace_hint函数。C++11现已得到广泛实现,因此您应该能够开箱即用地使用std::unordered_map。C++14不会对其进行重大更改,C++17将(可能)添加insert_or_assign和try_emplace成员函数。

c++ - std::map 是否允许在只读操作后重新平衡(如 Splay 树)

一些二叉树数据结构(例如Splay树)将在读取时重新平衡以将最近访问的项目移向根,这样可以减少后续查找时间。标准容器(std::map、std::set)是否允许这样做?至少一个问题是线程安全。以前,我认为只要您只对标准容器执行只读操作,从多线程执行此操作是安全的,而无需引入互斥锁/锁等。也许我需要重新考虑一下?我知道通常红黑树用于标准树容器,并且这些数据结构通常不会在读取时被修改。但是,确实修改过的假设实现是否符合要求?我的c++-standards-foo需要改进,但我不确定当前标准是否解决了容器的线程安全问题。这在c++0x中有什么不同吗? 最佳答案

Google-Map API给予无法加载资源:服务器以403()状态响应

目前,我正在使用AngularJS进行一个位置项目,其中我正在使用GoogleMapsJavaScriptAPI加载地图,并用于GoogleAutococterte服务。我从中下载了JShttp://maps.googleapis.com/maps/api/js并放置在项目JS文件夹中。我创建了指令,代码如下:.directive('callerLocation',function(){return{restrict:'E',replace:true,scope:{callerLocation:'='},template:'',link:function($scope,elm,attrs){v

c++ - 为什么 implicit == on map<<int,MyClass> 不编译?

我在为我的一个类(class)定义==时遇到了一个奇怪的问题。我将此处的代码简化为我在visual2013上测试过的示例;MyClass在命名空间N中定义这确实编译:N::MyClassa,b;booltest=a==b;这也是:constN::MyClassa,b;booltest=a==b;这不编译std::mapa,b;booltest=a==b;供您引用,=​​=运算符声明如下:booloperator==(constN::MyClass&a,constN::MyClass&b);这是我得到的错误:errorC2678:binary'==':nooperatorfoundwhi

c++ - 从 map<key, set<datatype>> 访问元素

我正在使用如下所示的数据结构:map>data;到目前为止,我在使用foreach循环处理map时没有遇到任何问题,但是,现在我需要像这样打印出map中的数据:KEY:elem1,elem2,elem3KEY2:elem1,elem2,elem3由于末尾缺少逗号,我不能再使用foreach循环了(可以吗?)。由于我是C++、C++11及其提供的所有乐趣的新手,所以我很迷茫。我想到了:for(autoi:data){cout我知道自己想要什么,只是对语法一无所知,C++引用也帮不上什么忙。感谢您的回答,同时我将自己浏览C++引用资料。 最佳答案

c++ - 从 initializer_list 错误构造 std::map

我正在尝试创建一个类构造函数,它将接受一个初始化列表并用它初始化一个映射,如下所示:classTest{std::mapm_ints;public:Test(std::initializer_list>init):m_ints(init){}};但这会导致很长的错误消息,坦率地说,我不明白。我需要更改什么才能使这项工作正常进行? 最佳答案 声明std::initializer_list的模板参数具有类型std::pair这是一个演示程序#include#include#includeclassTest{std::mapm_ints;