/*标准容器(类模板)的共性: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
*/
c++ STL标准容器的共性(权哥)
最新推荐文章于 2024-03-22 15:13:54 发布