C++ vs Python【数据结构】


C++ vs Python【数据结构篇】

队列

// C++
using namespace std;

queue q; // 普通队列
q.push(1); // queue的尾部添加一个元素的副本
q.front(); // 返回queue中第一个元素的引用
q.pop();   // 删除queue中的第一个元素
q.size();  // 返回queue中元素的个数
q.empty(); // queue是否为空
q.back();  // 返回queue中最后一个元素的引用

// ------------------------------------
#include 
deque dq;     // 双端队列
dq.push_front(1);  // 头部增加元素
dq.push_back(2);   // 尾部增加元素
dq.pop_front();    // 删除头部第一个元素
dq.pop_back();     // 删除尾部第一个元素
dq.front();        // 返回首元素的引用
dq.back();         // 返回尾元素的引用
dq.insert();       // 某元素前增加新元素
dq.erase();        // 删除某一元素
dq.size();				 // 元素个数
dq.empty();				 // 是否为空
# Python3
import collections

d = collections.deque([]) # deque为双端队列
d.append('a') # 在最右边添加一个元素, ('a')
d.appendleft('b') # 在最左边添加一个元素,(['b', 'a'])
d.extend(['c','d']) # 在最右边添加所有元素,(['b', 'a', 'c', 'd'])
d.extendleft(['e','f']) # 在最左边添加元素,(['f', 'e', 'b', 'a', 'c', 'd'])
d.pop() # 将最右边的元素取出,返回 'd',(['f', 'e', 'b', 'a', 'c'])
d.popleft() # 将最左边的元素取出,返回 'f',(['e', 'b', 'a', 'c'])
d.rotate(-2) # 向左旋转两个位置(正数则向右旋转),(['a', 'c', 'e', 'b'])
d.count('a') # 队列中'a'的个数,返回 1
d.remove('c') # 从队列中将'c'删除,(['a', 'e', 'b'])
d.reverse() # 将队列倒序(['b', 'e', 'a'])