草庐IT

mapped_type

全部标签

c++ - 如何使用 const 键复制 unordered_map?

简单代码:#includeintmain(){std::unordered_mapm;std::unordered_mapm1=m;}产生复杂的编译错误信息:ErrorC2280'std::hash::hash(void)':attemptingtoreferenceadeletedfunction在其内部基本上说unordered_map并不期望key是常量附言:我读过answer对于类似的问题:Theassociativecontainersonlyexposethe(key,value)pairasstd::pair,sotheadditionalconstonthekeytyp

c++ - 通过索引访问 map 值?

我有这张map:m.insert(pair(10,"map1"));m.insert(pair(11,"map2"));m.insert(pair(12,"map3"));m.insert(pair(13,"map4"));m.insert(pair(14,"map5"));然后,我让用户输入一个数字:Pleaseselect:1.Map12.Map23.Map34.Map45.Map5比方说,如果用户输入3,我如何获得值:12?? 最佳答案 使用您当前的设置,没有简单的方法可以做到这一点;您必须遍历map的所有元素,寻找具有Map

c++ - 迭代器模式 - 错误 C2679 : binary '<<' : no operator found which takes a right-hand operand of type 'std::string'

这个问题在这里已经有了答案:errorC2679:binary'(1个回答)关闭5年前。我正在尝试使用迭代器模式进行迭代和打印,但出现错误这里是错误:errorC2679:binary'couldbe'std::basic_ostream&std::operator>(std::basic_ostream&,constchar*)'这是错误的来源std::coutgetName();#ifndef_ROBOT1_#define_ROBOT1_namespaceguitars{namespaceComposite{namespaceInventoryParts{usingnamespac

c++ - 我怎样才能使 std::find_if 和 std::map 使用一些 boost 库协同工作?

这个问题的灵感来自anothertopic这提出了这个问题:Findthefirstvaluegreaterthanuserspecifiedvaluefromamapcontainer可以通过多种方式解决。典型的C++03解决方案定义了一个专用函数(或仿函数)并将其传递给std::find_if作为第三个参数。在C++11中,可以避免定义专用函数(或仿函数),而是可以使用lambda作为:autoit=std::find_if(m.begin(),mp.end(),[n](conststd::pair&x)->bool{returnx.second>n;});这是theaccepte

c++ - 删除元素时 map 迭代器如何失效?

这个问题在这里已经有了答案:IteratorinvalidationrulesforC++containers(6个答案)关闭3年前。使用erase方法时,迭代器何时以及如何在映射中失效?例如:std::mapaMap;aMap[33]=1;aMap[42]=10000;aMap[69]=100;aMap[666]=-1;std::map::iteratoritEnd=aMap.lower_bound(50);for(std::map::iteratorit=aMap.begin();it!=itEnd;//no-op){aMap.erase(it++);}删除的迭代器肯定会变得无效(

java - 使用 SWIG 将 Java Map<String, String> 传递给 C++ 方法

我有一个用C++定义的方法:std::mapvalidate(std::mapkey,std::mapvalue);我想在Java中使用这个方法。所以,我必须使用Swig编写一个包装器,我将能够通过它来传递JavaMap作为STLmap到C++方法。请让我知道我应该如何为swig定义.i文件以完成这项工作。 最佳答案 为此,您需要使用java.util.Map告诉SWIG将%typemap(jstype)用于输入参数。您还需要提供一些代码以将Java映射类型转换为C++std::map类型,SWIG将在适当的点注入(inject)该

当未定义属性时,解决Ansible MAP滤波器错误的最佳方法是什么?

我有一个带有IP,VRF等属性的接口列表。对我来说,最有趣的属性是VRF。我使用MAP属性过滤此列表,并使用简化的唯一列表创建必要的代码。如果未定义的VRF定义,则最优雅的过滤列表的方法是什么?变量base:HOSTNAME:MVPS001R01SITE_NUMBER:20ROUTER_NUMBER:1MGMT_IP:100.64.1.1interfaces:-intf:LOOP0ip:100.64.1.1vrf:MPLS1type:LOOP-intf:GI0/0/0vrf:globalip:192.168.0.1/24type:ethpeering:-intf:GI0/0/1vrf:INET

c++ - std::map::find 性能是否取决于 key 大小?

假设我有以下map定义:std::map其中key是Storage类实例的字符串表示。我的问题是,即使它说map::find复杂性大小是对数,string大小对性能有影响吗?我之所以有这个map是为了能够快速访问Storage类实例。但是,如果Storage类的字符串表示很长怎么办?是否存在最大字符串大小,如果超过该大小,则map的使用变得多余?注意事项我的直觉告诉我,如果Storage类的字符串表示很长,那么使用operator==比较类本身将是也很贵。所以无论字符串有多长,我都最好使用map 最佳答案 是的,map必须对键进行小

如何正确地从函数(type_traits)提供向量

我如何返回std::vector由此operator+()?#include#include#include#include#includetemplatestructis_std_vector:std::false_type{};templatestructis_std_vector>:std::true_type{};templatestd::enable_if_t>::value>operator+(T&&vec1,T&&vec2){for(inti=0;i(vec2.at(i)));returnvec1;}intmain(){std::vectorvec1{1,2,3,4,5};std

c++ - 如何在 C++11 中将容器 std::array<type, size> 用于多维数组?

例如,包含三个整数的一维数组可以定义为std::arraymyarray或myarray[3].有没有像std::array这样的容器对于像myarray[3][3]这样的多维数组? 最佳答案 一个关键部分是确保{}初始化工作类似于std::array,并尽可能合理地让自己保持pod状。与std::array的兼容性也很重要,什么比std::array更兼容??所以我的解决方案从std::array中生成多维数组小号:templatestructmulti_array_helper{usingtype=T;};templateusi