对比C++的STL,关于JS的容器用法

JS 里,基础结构只有 ArrayObject,ES6 新增了 Map / Set,用法和 STL 容器有点像:

  • Set 类似 unordered_set(不重复集合)

  • Map 类似 unordered_map(键值对)

  • 但 JS 的底层不是严格红黑树/哈希表,你不用管实现,直接用即可。

🟦 vector ↔ Array

// JS ES6
let arr = [];
arr.push(10);
arr.push(20);
console.log(arr[0], arr[1]); // 10 20

🟥 set ↔ Set

// JS ES6
let s = new Set();
s.add(5);
s.add(5); // 自动去重
console.log(s.has(5)); // true

🟨 map ↔ Map

// JS ES6
let mp = new Map();
mp.set("apple", 3);
mp.set("banana", 5);

for (let [k, v] of mp) {
    console.log(k, v);
}

🟩 stack / queue ↔ Array 模拟

// JS ES6
let st = [];
st.push(1); st.push(2);
console.log(st[st.length-1]); // 2
st.pop();

let q = [];
q.push(1); q.push(2);
console.log(q[0]); // 1
q.shift(); // 移除队首
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值