首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

有没有办法将cpp 11中的别名std::make_pair函数输入到abc::make_pair?

在C++11中,std::make_pair是一个用于创建std::pair对象的函数模板。而abc::make_pair则是一个自定义的函数,你想知道是否有办法将std::make_pair函数作为参数传递给abc::make_pair函数。

在C++中,函数指针可以用于传递函数作为参数。但是,由于std::make_pair是一个函数模板,而不是一个具体的函数,所以不能直接将其作为函数指针传递给abc::make_pair。

然而,你可以使用函数对象(Functor)来实现这个功能。函数对象是一个类对象,它的类重载了函数调用运算符operator(),使得该类的对象可以像函数一样被调用。

首先,你需要定义一个函数对象,该对象的函数调用运算符接受两个参数,并返回一个std::pair对象。你可以使用lambda表达式来定义这个函数对象,如下所示:

auto make_pair_lambda = [](auto&& arg1, auto&& arg2) { return std::make_pair(std::forward<decltype(arg1)>(arg1), std::forward<decltype(arg2)>(arg2)); };

然后,你可以将这个函数对象作为参数传递给abc::make_pair函数,如下所示:

abc::make_pair(make_pair_lambda);

这样,你就可以将std::make_pair函数的功能传递给abc::make_pair函数了。

需要注意的是,上述代码中的make_pair_lambda是一个匿名lambda函数,你可以根据实际情况将其命名为合适的名称。

关于腾讯云相关产品和产品介绍链接地址,由于要求不能提及具体品牌商,我无法提供相关链接。但你可以通过搜索腾讯云的官方文档或者咨询腾讯云的客服获取相关信息。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

c++统计英文文章单词数,花式输出!

英文文章单词统计 功能 统计一篇英文文章,按单词出现次数输入,按单词字典序输出,按单词逆序输出 思路 先拿到文件中单词,利用split函数分隔,原理是stringfind_of_first函数,第二个参数很好用...分隔一个一个单词存储vector中。 然后遍历vector,存储在multimpa中,使用键值对方式,健是string,值是int,使用find函数,如果map中有则值加一,没有则放入。...multimap中会按照第一个元素排序输出, 即string字典序输出。如何按照int从大小输出?...map值放到vector中,使用自定义排序写一个cmp函数,即可、 代码 #include #include #include #include...; map_std::iterator it; map_std mp;   //分割字符函数,不用细看 void split(string& s,vector&res,string

43920

STL之关联式容器map(一)

容器内对象位置是通过比较键决定,唯一要求是键必须可以用 less 比或用自己指定另一个函数对象来替代。...("Ian", 38)) insert() 第二个参数指定新元素会被插入提示符前面,并尽可能地靠近它 如果被插入元素已经在 map 中,会导致元素插入失败 确定元素不存在时,可以只提供一个插入符...;如果不那么确定,而且仍然想使用插入符,map 中 count() 函数会返回 map 中指定键对应元素数目,这个数目可能是 0 或 1。...people.count("Ian")) people.insert (ret_pr.first, std::make_pair ("Ian", 38)); 当 count() 函数返回...; return out; } #endif map 容器中元素是 std::pair 类型,可以用下面定义别名来简化代码: using

35940

分享一种不太完美的接入网关设计

如何解决这个问题呢,可以利用C++静态类对象自动创建,从而自动执行构造函数特性,把相关类型信息注册map结构里,这样就可以通过命令字得到对应类对象,就像类工厂一样。...解决办法是利用JCE2CPP工具,当转换JCE文件为C++代码时,把相应注册代码也添加到JCE产生CPP文件中。...,但是明显还不够,因为没有类型信息,没办法调用对象接口,幸好所有的JCE对象都是继承taf::JceStructBase,我们可以利用多态,用基类指针调用虚函数方法来完成jsonjce序列化和序列化...::runtime_error("not supported."); } }; } 修改JCE2CPP工具,让每个类继承我们基类,从而调用子类函数。...map,我们还根据OUT参数分别插入入参和出参vector,用来存储JCE接口入参和出参顺序,在调用taf接口序列化参数需要用到。

1.6K50

人工智能大作业—-八数码问题

步骤五 设计输入输出 输入:初始节点,目标节点 格式:1 3 2 4 0 5 6 7 8 1 2 3 8 0 4 7 6 5 可采取以下三种方式输入:命令行、文件start.txt、GUI输入。...1.一开始笔者把这些代码都写到了一个.cpp文件里面,但是感觉有些凌乱,就分成了global.h来存放全局变量及声明,function.h来存放功能函数声明,function.cpp来存放功能函数体,...其实我这个操作本质,就是把对path访问,放到function.cpp中进行,访问是function.cpppath,而并非是main.cpppath,虽然最后操作函数都在function.cpp...在run函数中,把含有H1(H2,H3,H4)(int ,int)函数都替换掉就可以了 下面给出完整代码 采取输入流是读取文件,读者自行在工程下创建.txt文件即可,注意不要把.txt放到... // 存储closed表数据结构 using namespace std; //对于可能被多个.h,.cpp执行声明不用特殊处理 typedef int board[4][4];//

1.7K30

mapunordered_map基础用法

由于映射中元素键是唯一,因此插入操作检查每个插入元素是否具有与容器中已有元素相同键,如果是,则不插入该元素,并将迭代器返回给此现有元素如果函数返回一个值)。...在容器内部,map容器按照其比较对象指定标准,通过键所有元素进行排序。这些元素总是按照这个顺序插入相应位置。...成员类型迭代器是指向元素双向迭代器类型 /*make_pair内敛函数 返回一个pair对象*/ //template //inline pair<K, V...valuestd::cout << "mymap['c'] is " << mymap['c'] << '\n'; //直接插入key为‘a’元素,元素对应value值为默认“” std...·调用insert操作,map相较于unordered_map操作慢,大致有23倍差异;但是map插入更加稳定·unordered_maperase操作会缩容,导致元素重新映射,降低性能。

2.5K30

C++中自定义结构体或类作为关联容器

概述 STL中像set和map这样容器是通过红黑树来实现,插入容器中对象是顺序存放,采用这样方式是非常便于查找,查找效率能够达到O(log n)。...所以如果有查找数据需求,可以采用set或者map。 但是我们自定义结构体或者类,无法对其比较大小,在放入容器中时候,就无法正常编译通过,这是set/map容器规范决定。...要将自定义结构体或者类存入set/map容器,就需要定义一个排序规则,使其可以比较大小。...最简单办法就是在结构体或者类中加入一个重载小于号成员函数,这样在存数据进入set/map中时,就可以根据其规则排序。 2....<符号比较函数,规定首先比较y大小,其次在比较x大小: bool operator < (const Vector2d& v) const { if (abs(x - v.x

2.1K20

关联式容器set和map

第二个插入函数实在某个位置插入一个节点,但是这个接口要慎用,因为有可能会破坏结构。...(可以获取到两个迭代器作为一个迭代器区间用于删除或插入) 可以看到这个erase2和3都给删掉了,可以理解为删除是一个这样区间:[2,3] 3.find和count find find...0; } 这里为了简化,使用一个make_pair函数 make_pair其实也是在调用pair构造函数,但它好处就是它是一个函数模板,可以自动推演,不用我们显示去声明类型。...first;然后再去取pairsecond,因为返回别名,所以可以修改 } 所以countMap[e]++;大致分为这几步: 1.调用insert,如果该值已经存在,插入失败并返回该节点迭代器,...返回答案应该按单词出现频率由高低排序。如果不同单词有相同出现频率, 按字典顺序 排序。

19720

【C++】红黑树封装实现 map 和 set

,在类中定义一个 RBTree 类型成员变量,然后插入、查找等函数都直接调用红黑树对应函数即可;set 模拟实现重难点在于 set 迭代器实现; 我们可以直接红黑树迭代器封装为 set 迭代器...,而 set 中用于接受返回值 iterator 其本质封装是红黑树 const 迭代器,所以这里报错原因是 红黑树普通迭代器赋值给红黑树 const 迭代器; 这个问题解决办法有很多,...M_t.begin(); } iterator end() const { return _M_t.end(); } 可以看到,stl 库中解决办法很简单 – begin() 和 end() 修饰为...return std::make_pair(iterator(_root), true); } //寻找插入位置 KeyOfT kot; //仿函数对象...return std::make_pair(iterator(_root), true); } //寻找插入位置 KeyOfT kot; //仿函数对象 Node* parent

83030

ACM竞赛常用STL(一)

全排列函数next_permutation STL 中专门用于排列函数(可以处理存在重复数据集排列问题) 头文件:#include using namespace std;...调用: next_permutation(start, end); 注意:函数要求输入是一个升序排列序列头指针和尾指针....当然,也可以通过重载这几个运算符来重新指定自己比较逻辑。除了直接定义一个pair 对象外,如果需要即时生成一个pair 对象,也可以调用在中定义一个模板函数make_pair。...输入个数不定一组整数,再将这组整数按倒序输出, 如下所示: #include #include using namespace std; int main()...s.end())所指定序列复制标准输出流cout 中,用" "作为每个元素间隔。

77820
领券