写点东东,

好久不来了,随便写一点,不要让优快云把我抛弃了。

你问得特别好! > “队列里面存储的信息居然可以是{}吗?这又是什么东东?” 我们来**彻底、老实、一句人话都不多地说清楚这件事**。 --- ### ❌ 先纠正一个误解: 你说的 `{}` 不是一种数据类型,也不是“神奇语法”。 它只是 C++ 里一种**给结构体或 `pair` 赋值的写法**,叫: > **花括号初始化(Brace Initialization)** --- ### ✅ 举个最简单的例子 假设你有一个小盒子,要装两个东西: - 进货的那一天(比如第5天) - 买了多少升(比如20升) 你怎么存? #### 方法1:用两个变量 → 不行!分开了就不知道谁对应谁 ```cpp int day = 5; int amount = 20; ``` 但如果有很多笔进货,你就分不清哪天对应哪个量。 #### 方法2:用 `pair<int, int>` → 可以!但看不懂谁是天谁是量 ```cpp pair<int, int> p = {5, 20}; ``` → `{5, 20}` 就是你看到的“{}”,其实就是把两个数打包在一起。 你可以把它想成:“一对数字”,顺序你自己定。 比如你说:第一个是 `day`,第二个是 `amount` 然后放进队列: ```cpp queue<pair<int, int>> A; A.push({5, 20}); // 把 {5,20} 放进队列 ``` 这就相当于说:“第5天进了20升” --- #### 方法3:用 `struct` 结构体 → 最清楚!推荐初学者理解 ```cpp struct 牛奶 { int 进货日; int 数量; }; queue<牛奶> A; A.push({5, 20}); // 同样用 {},但现在你知道这两个数代表啥了 ``` 你看,`{5, 20}` 就是填进去的值,对应 `进货日=5`, `数量=20` --- ### 🧠 所以,“{}”到底是什么? 👉 它就是**一种写法**,意思是:“我要往某个容器里放一组数据”。 就像你去奶茶店点单: > “我要一杯奶茶,温度:热,糖度:半糖,加珍珠” 系统可能会这样记录: ```cpp { "热", "半糖", true } ``` 在代码里,`{}` 就是用来**一次性传多个值**的方式。 --- ### 💡 类比生活场景 想象你有一个快递柜,每层放一个包裹。 每个包裹上贴一张纸条,写着: - 寄件人:张三 - 电话:138XXXX - 时间:今天上午10点 这个“纸条”就是一个结构体。 你在代码里怎么表示这张纸条? ```cpp struct 包裹 { string name; string phone; int time; }; ``` 然后你把一个包裹放进柜子: ```cpp queue<包裹> cabinet; cabinet.push({"张三", "138XXXX", 10}); // ↑ ↑ ↑ // 用 {} 一次性填三个值 ``` 这里的 `{}` 就是“填内容”的动作,不是神秘符号。 --- ### 🔁 回到你的问题 你说:“队列里怎么能存 {}?” 答案是: > 队列不能直接存 `{}`,但可以存一个**包含多个信息的组合体**(比如 `pair` 或 `struct`),而 `{}` 是用来**快速创建这个组合体的写法**。 所以: ```cpp A.push({5, 20}); ``` 等价于: ```cpp pair<int, int> temp; temp.first = 5; temp.second = 20; A.push(temp); ``` 只是太啰嗦了,所以我们用 `{}` 简化。 --- ### ✅ 总结一句话 > `{}` 不是魔法,也不是乱码,它是 C++ 中用来“一次给多个字段赋值”的快捷方式,就像你填表格时一口气写完姓名、年龄、电话一样。 你想让它代表什么,就看你定义的数据结构是什么。 --- ## 🔑 知识点 - **花括号初始化**:`{}` 是 C++ 中用于构造复合类型的简洁语法,如 `pair` 或 `struct`。 - **队列可存复合数据**:只要定义清楚,队列能存任何带时间和数量的信息组合。 - **结构体提升可读性**:使用 `struct { int day; int amt; }` 比 `pair<int,int>` 更易理解。
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值