多重调用功能
Multiple calling function
我需要将数据添加到我的映射中。我做了这个功能:
CSupermarket CSupermarket::Store( string name, CDate x, int count ) {
pair <CDate, int> p;
p = make_pair ( x, count );
vector<pair<CDate, int >>::iterator it;
vector<pair<CDate, int > > v;
if ( items[name].size() ) {
v = items[name];
}
it = lower_bound (v.begin(), v.end(), p );
v.insert( it, p );
items[name] = v;
return * this;
}
我不得不这样称呼它:
CSupermarket s;
s . Store ( "bread", CDate ( 2016, 4, 30 ), 100 ) .
Store ( "butter", CDate ( 2016, 5, 10 ), 10 ) .
Store ( "beer", CDate ( 2016, 8, 10 ), 50 ) .
Store ( "bread", CDate ( 2016, 4, 25 ), 100 ) .
Store ( "okey", CDate ( 2016, 7, 18 ), 5 );
s . Store ( "Coke", CDate ( 2016, 12, 31 ), 10 );
但当我称之为"面包"answers"可乐"时,它只添加了一些项目。请问,我必须如何修复它,它会添加所有项目(面包、黄油、啤酒、OK、可乐)?
感谢
函数返回*this
的一个副本,每个链式调用都创建一个新副本
只有"面包"answers"可乐"在修改s
。
您需要返回对*this
:的引用
CSupermarket & CSupermarket::Store( string name, CDate x, int count )
^
reference
相关文章:
- Java等效于C Botan功能调用
- 任何操作员,功能调用和构造函数的通用持续时间表
- WriteConsole访问在功能调用中违反,而不是来自main()
- 级联功能调用
- 在递归功能中,我如何跳到堆栈上的其他功能调用
- 继承多态性功能调用
- 在Google测试框架中,如何期望函数调用或其他功能调用
- 与功能调用混乱
- LLVM插入功能调用到另一个函数中
- 是否可以将功能调用堆栈放在堆上
- 我应该如何理解此功能调用
- SVML的覆盖功能调用
- 中断功能调用与正常功能
- 功能调用不起作用,但控制台仍允许输入
- 明显琐碎的功能调用中未经手的例外
- 复制构造函数和级联功能调用
- C 如何在功能调用中从char *转换为unsigned char *
- 局部静态变量的初始化多个功能调用
- 在每个孩子C 的特定功能调用上调用父函数
- 具有无效*和无效**的灵活功能调用