zoukankan      html  css  js  c++  java
  • 标准容器的共性及举例

    应用举例如下:

    /*
     * vector_1.cpp
     *
     *  Created on: 2013年8月5日
     *      Author: 黄俊东
     *      女神!女神!!!
     */
    
    
    #include <iostream>
    #include <vector>//使用某种容器就要引入相应的头文件
    #include <algorithm>//使用sort()函数,所以要引入这个头文件
    
    using namespace std;
    
    /**
     * 打印一个区间中的所有元素
     */
    template <typename T>
    void print(T b , T e){
    	while( b!= e){
    		cout<<*b++<<' ';
    	}
    	cout<<endl;
    }
    /**
     * begin():第一个元素,
     * end():最后一个元素,
     * rbegin():倒数第一个元素
     * rend():倒数最后一个元素
     * 上面四个函数返回的都是一个迭代器
     *
     * insert(pos,element) : 在pos这个位置上插入element这个元素
     * erase(pos) :删除pos这个位置上的元素
     * erase(begin,end) : 删除begin~end之间的元素
     * clear() : 清除容器中的所有元素
     * 上面的pos指的都是一个迭代器
     *
     * size() : 容器中元素的个数
     * max_size() : 容器的最大容量
     * empty() : 判断容器是否为空
     * vi.swap(v2) : 交换vi容器与v2容器的内容
     * swap(vi,v2) : 同上
     *
     * x.capacity() :返回容器的当前容量,不是标准容器的共性.
     */
    int main(){
    	int a[5]={33,22,11,55,44};
    	vector<int> vi(a,a+5);
    	cout<< vi.size()<<endl;//5
    
    	sort(vi.begin(),vi.end());
    	vector<int>::iterator b = vi.begin();
    
    	while(b!=vi.end()){//11 22 33 44 55
    		cout<<*b++<<' ';
    	}
    	cout<<endl;
    
    	for(int i = 0 ; i < 5 ; ++i ){
    		cout<<a[i]<<',';//33,22,11,55,44,
    	}
    	cout<<endl;
    
    	print(vi.begin(),vi.end());//11 22 33 44 55
    	print(a,a+5);//33 22 11 55 44
    	print(vi.rbegin(),vi.rend());//55 44 33 22 11
    	b  = vi.begin();
    	vi.insert(++++b,66);//11 22 66 33 44 55
    	vi.insert(vi.begin(),77);//77 11 22 66 33 44 55
    	vi.insert(vi.end(),88);//77 11 22 66 33 44 55 88
    	print(vi.begin(),vi.end());
    	cout<<vi.size()<<'/'<<vi.max_size()<<endl;//8/1073741823
    	vi.erase(------vi.end());
    	print(vi.begin(),vi.end());//77 11 22 66 33 55 88
    	vi.erase(++++vi.begin(),--vi.end());//77 11 88
    	print(vi.begin(),vi.end());
    
    	vector<int> v2(a,a+5);
    	print(v2.begin(),v2.end());//33 22 11 55 44
    	vi.swap(v2);
    	cout<<"=========================="<<endl;
    	print(vi.begin(),vi.end());//33 22 11 55 44
    	print(v2.begin(),v2.end());//77 11 88
    	swap(vi,v2);
    	cout<<"=========================="<<endl;
    	print(vi.begin(),vi.end());//77 11 88
    	print(v2.begin(),v2.end());//33 22 11 55 44
    	vector<int> t = vi;
    	vi = v2;
    	v2 = t;
    	cout<<"=========================="<<endl;
    	print(vi.begin(),vi.end());//33 22 11 55 44
    	print(v2.begin(),v2.end());//77 11 88
    
    	vi.clear();
    	cout<<vi.size()<<endl;//0
    	print(vi.begin(),vi.end());//这时什么东西也没有了
    	vector<int> x;
    	//x.capacity() 返回容器当前的容量
    	cout<<"vector当前容量:"<<x.capacity()<<endl;
    }
    


  • 相关阅读:
    lazyload is not a function解决方式
    APK反编译(Linux环境下)
    讲解图片压缩的文章
    startActivityForResult相关的
    把APP做成libary的注意事项
    ViewPager+Fragment,Fragment会预加载的问题
    FragmentTabHost使用注意
    使用ReTrofit做缓存(结合上拉加载和下拉刷新)
    极光推送,极光IM使用指南(AndroidStudio)
    AndroidStudio使用注意事项
  • 原文地址:https://www.cnblogs.com/javawebsoa/p/3238988.html
Copyright © 2011-2022 走看看