目录
- 【设计模式专题之单例模式】1.小明的购物车
【设计模式专题之单例模式】1.小明的购物车
文章链接:卡码网设计模式
题目链接:1.小明的购物车
单例模式:
#include
#include #include using namespace std; class ShoppingCartManager { private: unordered_map cart; vector order; // 保持顺序 // 私有构造函数 ShoppingCartManager() {} public: // 获取购物车实例 static ShoppingCartManager& getInstance() { static ShoppingCartManager instance; return instance; } // 添加商品 void addToCart(const string& itemName, int quantity) { if (cart.find(itemName) == cart.end()) { order.emplace_back(itemName); } cart[itemName] += quantity; +=和=都行 } // 查看商品 void viewCart() const { for (const auto& itemName : order) { cout << itemName << " " << cart.at(itemName) << endl; } } }; int main() { string itemName; int quantity; ShoppingCartManager& cart = ShoppingCartManager::getInstance(); while (cin >> itemName >> quantity) { cart.addToCart(itemName, quantity); } cart.viewCart(); return 0; } 这题注意清单输出顺序,map底层是红黑树,unordered_map底层是哈希表,无法保证输出顺序和输入相同,这里创建了一个vector来保证输出顺序,并使用了emplace_back方法,在向量的末尾直接构造一个元素,而不是先创建一个元素对象再将其复制或移动到向量中(push_back)。
另外注意程序中&和const的使用。
设计模式第一天打卡,加油!!!
猜你喜欢
- 15天前(零碳中国·绿色投资蓝皮书)中国"零碳"差旅之路暨"绿色低碳酒店"标准研究项目成果发布会召开
- 15天前(大理悦云雅阁酒店电话)雅阁酒店集团|端午佳节礼遇,大理悦云雅阁度假酒店
- 15天前(2020海丝之路文化博览会)2023海丝之路文化和旅游博览会开幕
- 15天前(夏日旅行海报)夏日旅行|精简行囊 向快乐进发
- 15天前(哥伦比亚号邮轮)爱达邮轮与哥仑比亚船舶管理集团达成合作
- 15天前(七尚酒店百度百科)Lohkah七尚酒店首度开创充满新知的闽地研学旅程
- 15天前(云南滇陇工程咨询有限公司)陇滇携手谋发展 文旅合作谱新篇
- 15天前(新西兰航空官方网站)新西兰航空85周年焕新启航 全方位客舱升级,飞「悦」快意时光
- 15天前(泸沽湖大酒店地址)泸沽湖岚岳酒店盛大开业|以摩梭文化为魂,打造高端度假新地标
- 15天前(我在港航“呵护”飞机 每一次安全着陆就是最好的荣誉)我在港航“呵护”飞机 每一次安全着陆就是最好的荣誉
网友评论
- 搜索
- 最新文章
- (2020广州车展哈弗)你的猛龙 独一无二 哈弗猛龙广州车展闪耀登场
- (哈弗新能源suv2019款)智能科技颠覆出行体验 哈弗重塑新能源越野SUV价值认知
- (2021款全新哈弗h5自动四驱报价)新哈弗H5再赴保障之旅,无惧冰雪护航哈弗全民电四驱挑战赛
- (海南航空现况怎样)用一场直播找到市场扩张新渠道,海南航空做对了什么?
- (visa jcb 日本)优惠面面俱到 JCB信用卡邀您畅玩日本冰雪季
- (第三届“堡里有年味·回村过大年”民俗花灯会活动)第三届“堡里有年味·回村过大年”民俗花灯会活动
- (展示非遗魅力 长安启源助力铜梁龙舞出征)展示非遗魅力 长安启源助力铜梁龙舞出征
- (阿斯塔纳航空公司)阿斯塔纳航空机队飞机数量增至50架
- (北京香港航班动态查询)香港快运航空北京大兴新航线今日首航
- (我在港航“呵护”飞机 每一次安全着陆就是最好的荣誉)我在港航“呵护”飞机 每一次安全着陆就是最好的荣誉
- 热门文章