multiset容器使用上的一些疑问
来源:互联网 发布:Ubuntu 自动获取ip 编辑:程序博客网 时间:2024/05/16 09:32
struct CVal{int nVal;CVal(int n){ nVal = n; }};int main(){vector<int> vec = { 12,3,1,2,3,5,9,8,7,1,9,8,35 };bool(*pF)(const CVal& n1, const CVal& n2) = [](const CVal& n1, const CVal& n2)->bool{return n1.nVal < n2.nVal; };multiset < CVal, bool(*)(const CVal& n1, const CVal& n2)> Val(*pF);return 0;}
Val.emplace(vec.begin(), vec.end());这样使用会报错
当我这样定义时,就会出错。
由此可见,报错是由添加第二个元素引发的.
当我这样写后也会报错.
具体可能因为我的类的不完整造成的,也可能是其他原因。
这两种写法是等价的.
error C2661: “CVal::CVal”: 没有重载函数接受 2 个参数
主要原因:当我这样定义时,就会出错。
由此可见,报错是由添加第二个元素引发的.
当我这样写后也会报错.
error C2064: 项不会计算为接受 2 个参数的函数
这样写就正常使用了.具体可能因为我的类的不完整造成的,也可能是其他原因。
</pre><pre name="code" class="cpp">vector<int> vec = { 12, 3, 1, 2, 3, 5, 9, 8, 7, 1, 9, 8, 35 };//auto pF =bool(*pF)(const CVal& n1, const CVal& n2) = [](const CVal& n1, const CVal& n2)->bool{return n1.nVal < n2.nVal; };multiset < CVal, bool(*)(const CVal& n1, const CVal& n2)> Val1(pF);multiset < CVal, decltype(pF)> Val(pF);Val.emplace(1);Val.emplace(*vec.begin());Val1.emplace(1);Val1.emplace(*vec.begin());
这两种写法是等价的.
0 0
- multiset容器使用上的一些疑问
- STL容器使用DEMO-multiset
- 容器set/multiset的使用方法
- 上一代容器(server container)加载servelt的疑问
- printer扩展的一些使用疑问
- multiset的使用
- multiset的使用
- std::multiset 的使用
- 抓取的一些疑问
- Nosql的一些疑问
- dynamic_cast的一些疑问
- python的一些疑问
- set和multiset容器的能力
- stl之multiset容器的应用
- C++ set和multiset容器的用法
- CSDN上的疑问??
- ACM学习历程11——Multiset集合容器的使用
- 关于Access发布使用打包软件的一些疑问解答
- 黑马程序员——集合Collections,集合Arrays
- 修改lua的文件加载器,自定义lua文件加载
- Sql中的set和select赋值方式的区别?
- 获取Application的context
- 你做过的最有效的提高编程水平的一件事情是什么?
- multiset容器使用上的一些疑问
- 面试笔记2
- Eclipse常用快捷键及技巧总结
- Android 开发规范
- 二分匹配_HDU_2063
- 9 Portuguese
- MFC CListCtrl的学习
- applicationContext 四种数据源获取方式
- Asp.net操作Excel(终极方法NPOI)