c++ STL标准容器的共性(权哥)

/*标准容器(类模板)的共性:vector,deque,list,set/map,multi...
构造函数:无参构造,拷贝构造,区间构造(两个迭代器表示的两个位置)
析构:
迭代器相关:正向.begin(),.end(),反向.rbegin(),.rend()
 iterator,reverse_iterator,const_iterator,const_reverse_iterator
 *,->,=,++,==,!= -- 
插入:.insert(pos,element),其中pos表示插入位置,是个迭代器
删除:.erase(pos), .erase(pos_beg, pos_end)
清除:.clear()
大小:.size(), .max_size(), .empty()
交换:.swap(c2),  swap(c1,c2)
运算符:=, >, <, >=, <=, ==, !=
*/
#include <iostream>
using namespace std;
#include <vector>
#include <algorithm>
#include "print.h"
/*
#ifndef PRINT_H
#define PRINT_H 1
//输出一个指定区间中的所有数据(含头不含尾)
template<typename T>
void print(T b, T e, char c=' ')
{
	while(b!=e)
		cout << *b++ << c;
	cout << endl;
}
#endif
*/
int main()
{
	int a[5]={33,22,11,55,44};
	vector<int> vi(a,a+5);
	cout << vi.size() << endl;
	sort(vi.begin(), vi.end());//只能是数组、vector和deque
	vector<int>::iterator b = vi.begin();
	while(b!=vi.end())
		cout << *b++ << ' ';
	cout << endl;
	for(int i=0; i<5; i++)
		cout << a[i] << ',';
	cout << endl;
	print(vi.begin(), vi.end());
	print(a, a+5);
	print(vi.rbegin(), vi.rend());
	b = vi.begin();
	vi.insert(++++b,66);
	vi.insert(vi.begin(), 77);
	vi.insert(vi.end(),88);
	print(vi.begin(), vi.end());
	cout << vi.size() << '/' << vi.max_size() << endl;
	vi.erase(------vi.end());
	print(vi.begin(), vi.end());
	vi.erase(++++vi.begin(),--vi.end());
	print(vi.begin(), vi.end());
	vector<int> v2(a,a+5);
	print(v2.begin(), v2.end());
	cout << "==================" << endl;
	vi.swap(v2);
	print(vi.begin(), vi.end());
	print(v2.begin(), v2.end());
	cout << "==================" << endl;
	swap(vi,v2);
	print(vi.begin(), vi.end());
	print(v2.begin(), v2.end());
	cout << "==================" << endl;
	vector<int> t=vi;
	vi = v2;
	v2 = t;
	print(vi.begin(), vi.end());
	print(v2.begin(), v2.end());
	vi.clear();
	cout << vi.size() << endl;
	print(vi.begin(), vi.end());
	vector<int> x;
	cout << "vector current capacity:" << x.capacity() << endl;
}

/*
输出:
5
11 22 33 44 55 
33,22,11,55,44,
11 22 33 44 55 
33 22 11 55 44 
55 44 33 22 11 
77 11 22 66 33 44 55 88 
8/1073741823
77 11 22 66 33 55 88 
77 11 88 
33 22 11 55 44 
==================
33 22 11 55 44 
77 11 88 
==================
77 11 88 
33 22 11 55 44 
==================
33 22 11 55 44 
77 11 88 
0
*/
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值