Python | C++ | 解释 |
v = [] | vector<Elem> v | 创建一个空的vector。 |
v.append(elem) | v.push_back(elem) | 在尾部加入一个数据。 |
v.extend([x, y, z]) | v.insert(v.end(), {x, y, z}) | 在尾部一次添加多个数据 |
len(v) | v.capacity() | 返回容器中数据个数。 |
v[0] | v.front() | 传回第一个数据。 |
v[-1] | v.back() | 传回最后一个数据,不检查这个数据是否存在。 |
v[idx] | v.at(idx) | 传回索引idx所指的数据,如果idx越界,抛出out_of_range。 |
v[0] | v.begin() | 传回迭代器重的可一个数据。 |
v[-1] | v.end() | 指向迭代器中的最后一个数据地址。 |
v[::-1] | v.rbegin() | 传回一个逆向队列的第一个数据。 |
v.reverse() | v.rend() | 传回一个逆向队列的最后一个数据的下一个位置。 |
v.pop() | v.pop_back() | 删除最后一个数据。 |
v1 = v.copy() | vector <Elem> v1(v) | 复制一个vector。 |
v = [elem] * n | vector <Elem> v(n, elem) | 创建一个含有n个elem的vector。 |
v = [elem] * n | v.assign(n,elem) | 将n个elem的拷贝赋值给v。 |
v = list(beg, end) | vector <Elem> v(beg,end) | 创建一个以[beg;end)区间的vector。 |
v.extend(range(beg, end)) | v.assign(beg,end) | 将[beg; end)区间中的数据赋值给v。 |
del v | v.~ vector <Elem>() | 销毁vector所有元素,释放内存。 |
v.clear() | v.clear() | 移除容器中所有数据。 |
len(v) == 0 | v.empty() | 判断容器是否为空。 |
v.insert(pos, elem) | v.insert(pos,elem) | 在pos位置插入一个elem拷贝,传回新数据位置(位置指传回地址值)。 |
v[pos:pos] = [elem] * n | v.insert(pos,n,elem) | 在pos位置插入在[beg,end)区间的数据。无返回值。 |
v[pos:pos] = list(beg, end) | v.insert(pos,beg,end) | 在pos位置插入n个elem数据。无返回值。 |
v.pop(pos) | v.erase(pos) | 删除pos位置的数据,传回下一个数据的位置。 |
v[beg:end] = [] | v.erase(beg,end) | 删除[beg,end)区间的数据,传回下一个数据的位置。 |
v = [] | v.reserve() | 保留适当的容量。 |
v += [None] * n | v.resize(num) | 重新指定队列的长度。 |
max(v) | v.max_size() | 返回容器中最大数据的数量。 |
v1, v2 = v2, v1 | c1.swap(c2) | 将c1和c2元素互换。 |
v1, v2 = v2[:], v1[:] | swap(c1,c2) | 同上操作。 |
for循环遍历list各项元素:
Python :
v = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
for i in v:
print (i)
# 或者
[print(i) for i in v]
C++:
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector<int> v = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
for(int i = 0; i < int(v.capacity()); i++)
cout << v[i] << endl;
}
或者使用迭代器:
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector<int> v = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
vector<int>::iterator iter;
for(iter = v.begin() ; iter != v.end() ; ++iter)
cout << *iter << endl;
}
C++ 练习2:将一个数组 v1[ ] 数组转换成vector v2形式,再循环遍历。
#include <iostream>
#include <vector>
using namespace std;
int main()
{
int v1[] = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};
vector<int> v2(v1, v1 + sizeof(v1) / sizeof(int));;
// 或者拆分来写:
// vector<int> v2;
// v2.assign(v1, v1 + sizeof(v1) / sizeof(int));
for (int i = 0; i < int(v2.capacity()); i++)
cout << v2[i] << endl;
}