草庐IT

Using-Elastic-Map-Reduce-via-Comm

全部标签

java - 继承 Java 集合接口(interface)(Set、Map、List 等)的 C++ 等价物是什么?或者扩展 AbstractCollection?

我已经开始使用C++编写代码,来自Java背景(实际上我在我的大学学习了C++,但我们从未接触过STL等)无论如何,我已经到了在各种集合中排列数据的地步,我立即告诉自己“好吧,这是一种集合;这是一个列表,或者一个ArrayList;这是一张map等等。”在Java中,我会简单地让我正在编写的任何类实现Set或Map或List接口(interface);但我可能不会去继承ArrayList或HashSet或其他什么,那里的实现有点涉及,我不想把它们搞砸。现在,我要用C++(使用标准库)做什么?似乎没有Sets、Maps、Lists等的抽象基类——相当于Java接口(interface);

c++ - 关于 "using"关键字的问题

我很清楚using命名空间,但是,我时不时地遇到一个using,它使用一个特定的类。例如:#includeusingnamespacestd;(...)但是-我时不时地看到:usingstd::string;在这种情况下我应该如何解释“使用”?干杯 最佳答案 使用std::string只是将std::string导入当前范围(也就是,您可以只使用'string'而不是'std::string'),而无需将所有内容从::std导入当前范围。编辑:评论后澄清。 关于c++-关于"using"

c++ - using 声明的可变参数扩展

这个问题在这里已经有了答案:关闭10年前。PossibleDuplicate:usingdeclarationinvariadictemplate我最近遇到了agenericmechanism用于组合两个函数对象以形成一个新的函数对象,其行为就像前两个被重载一样:templatestructoverload:publicF1,publicF2{overload(F1f1,F2f2):F1(f1),F2(f2){}usingF1::operator();usingF2::operator();};我正在尝试将这个想法扩展到适用于N个函数对象,使用可变参数模板:templatestruct

c++ - 我可以使用成员变量作为 hash_set/hash_map 的键吗?

我有这样一个类:classFoo{longlongId;stringx;stringy;//othermembervariablesandfunctions};我想将其存储在hash_set中(或hash_map),但使用Id成员变量作为插入和搜索的键。我不确定我该怎么做。我想到了以下几种方法,但都不是很好:1)我可以编写一个自定义散列函数,使用Id对对象进行散列,但我不能使用find()hash_set上的方法通过Id(longlong)查找项目,因为它需要Foo要传入的对象。2)我可以复制Id并创建一个hash_map而不是hash_set但我有1亿个这些对象的实例,所以我不想复制

c++ - 包含抽象基类的 ptr_map 的映射对象

我有一个boost::ptr_map,它将抽象基类(例如VectorWrapperBase)存储为值,这允许我将字符串映射到不同类型的vector。boost::ptr_mapmemory_map;//...memory_map.insert(str_key,newVectorWrapper());这似乎有效。但是,当我将memory_map作为另一个类的成员并尝试将该类存储在std::map中时,编译失败。classAgentMemory{//...private:boost::ptr_mapmemory_map;};std::mapagent_map;//...agent_map.

c++ - map 性能问题

如果有人可以帮助我,我完全没有想法。所以我有这段代码(这是我的代码的一个非常简化的版本):while(readNewFile()){while(getNewStructFromFile()){unsignedlongstarttime=GetTickCount();customerData.fillFromBinaryData(structPointer);cout(customerData.phoneNumber,""));}//OuptutalldataaMap.clear();}基本上,它只是从二进制文件中读取记录。customerData获取数据并用其中的数据填充其变量。然后,

C++ 静态初始化 map<float, float[3]>

因此,我有一个mapmyMap,我正在尝试对其进行静态初始化(必须以这种方式完成)。我正在做以下事情:myMap={{415,{1,52356,2}},{256,{356,23,6}},//...etc};但是我收到以下错误:“数组初始值设定项必须是初始值设定项列表。”我上面的语法有什么问题? 最佳答案 你应该使用array而不是“普通”数组:#include#include#includeintmain(){std::map>myMap{{415,std::array{1,52356,2}},{256,std::array{356

c++ - 变量模板 + std::map 的通用 lambda

安answertoC++14VariableTemplates:whatisthepurpose?Anyusageexample?提出了一个变量模板+通用lambda的用法示例,看起来像这样:voidsome_func(){templatestd::mapstorage;autostore=[](intkey,constT&value){storage.insert(key,value)};store(0,2);store(1,"Hello"s);store(2,0.7);//Allthreevaluesarestoredinadifferentmap,accordingtotheir

c++ - 如何在不移动的情况下交换 map 元素?

如果我有两个map我如何交换每个map中的一个元素??例如:mapps{{"triangle",0},{"cross",1},{"square",2},{"circle",3}};mapxbox{{"y",0},{"a",1},{"b",2},{"x",3}};swap(move(ps["cross"]),move(xbox["x"]));swap声明显然是错误的,但这解释了我想做什么。swap之后我想要声明ps包含:{"triangle",0}{"x",3}{"square",2}{"circle",3}和xbox包含:{"y",0}{"a",1}{"b",2}{"cross",1}

c++ - 使用 unordered_map,其中 Key 是 T 的成员

有没有什么好的方法可以使用unordered_map以便您可以在恒定时间(平均情况下)通过成员变量访问对象?以下示例具有此功能,但需要每个Person的名称复制为key:#include#include#include#includeclassPerson{public:Person():name_(""){}Person(conststd::string&name):name_(name){}std::stringgetName()const{returnname_;}voidkill()const{std::coutmap={{p1.getName(),p1},//Duplicat