在 JS 里,基础结构只有 Array 和 Object,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(); // 移除队首
1141

被折叠的 条评论
为什么被折叠?



