stdmap

    17热度

    2回答

    我有以下问题: std::map<A*,double> map; void getColor(A const * obj){ double d = map[obj]; // does not compile wihtout const_cast<A*>(obj) // do something } 我有地图std::map(的地方),存储对象指针A。 我有一个功能ge

    2热度

    1回答

    我需要解析XML并在C++中创建对应于XML元素的对象,并将XML元素的属性作为属性打包到这些对象中。 XML元素/属性和相应的C++类/属性继承自具有派生对象通用属性的基础对象。 我正在考虑使用基类的公共属性和派生类只需要定义对象的特定属性。然而,有人告诉我,使用标准多态不是一个好主意,因为解决方案不够通用 - 在XML中添加/更改属性需要向C++类添加/更改相应的属性,这需要更改太多的代码。一

    -1热度

    2回答

    假设我有范围在(r1,r2]范围内的对象我想插入为映射的键。他们没有迭代器/下一个定义,但有一个小于运算符。我怎么会做这样的: template< class K, class V> void foo(K r1, K r2, V val) { for(K key = r1; key < r2; ++key) { mMap.insert(make_pa

    1热度

    1回答

    我想为每个x,y坐标存储一个2D点向量,以用作具有光线追踪器某个方面的预先计算值的查找表。 对于这一点,我创建以下类型的数据结构一个: std::map<float, std::map<float, std::vector<vec2>>> apertureMap; 为了给出的数据结构的复杂性的一个想法,地图和向量将各持有32个条目。 我可以找到X下界值,y坐标是: // find lowest

    0热度

    1回答

    我有两个线程: 线程A插入到std::map 线程B从std::map 消除由于std::map::erase和std::map::insert保持地图有效的所有迭代器,我似乎无法理解在这种情况下可能发生的竞争状况。

    0热度

    1回答

    我有一个std::vector<T>和一个std::map<U, std::size_t>,其中该映射充当向量索引的不同方式,即映射的键值对中的值是一个向量元素。 我可以保证不仅钥匙,而且地图的价值都是唯一的。 现在,当我将std :: sort应用于向量时,显然会更改可找到元素的索引,并且我想相应地更新我的映射。 我发现this答案是将一个置换应用于第二个向量。我想要做的就是将这个排列应用到地图

    1热度

    3回答

    我有一个需要容纳一个ID(ID是唯一的)和数据值的容器的情况。我还需要保持这些ID的顺序。这些变量的元组将被ID查找,然后按顺序处理直到找到的元素,即我并不总是要处理整个容器。对于这一点,我已经通过迭代,并与一对的第一场比较搜索值,给我一个迭代器走到了的 // ordinal, { ID, data } std::map<int64, pair<int64, data_t> > 我会首先搜索

    1热度

    2回答

    所以我在我的程序中检查事实时遇到问题继承人代码: 该向量包含3种类型的派生对象我只是想要向量中的每个基础对象的子项。我似乎无法找到适当的语法。 class Base{ virtual void method() = 0; } class derived_1 : public Base{ virtual void method(); } class derived_2 : pu

    0热度

    2回答

    我不太熟悉异常处理,所以有人可以帮我解决这个问题吗?所以对于这个程序,在std :: map中存在一个不存在的键,我想抛出一些东西,但我不知道是什么。 映射键如果存在将是一个电话号码(字符串),但如果它不存在,它会是什么? class SmartCarrier{ private: string carrier_name_; map<string,vector<Message*

    0热度

    1回答

    我通过upper_bound找到std::map<int, X>中的某个点,然后从这个点开始向后迭代。我的代码看起来像这样: MAP::reverse_iterator iter; iter = _map.upper_bound(value); // Does not compile because upper_bound is not reverse_iterator while(ite