• 顺序容器:vector和deque 的程序举栗子


    1、vector 举栗子(演示vector常用的成员函数)

    #include <iostream>
    #include <vector>
    using namespace std;
    
    //模板,输出vector中的元素
    template<class T>
    void PrintVector( T s, T e)
    {
    	for(; s != e; ++s)
    	cout << * s << " ";
    	cout << endl;
    }
    
    int main(){
    	int a[5] = { 1,2,3,4,5 };
    	vector<int> v(a,a+5); 								//将数组a的内容放入v
    	cout << "1) " << v.end() - v.begin() << endl;		//两个随机迭代器可以相减,输出 1) 5
    	
    	cout << "2) "; 
    	PrintVector(v.begin(),v.end());						//2) 1 2 3 4 5
    	
    	v.insert(v.begin() + 2, 13); 						//插入:在begin()+2位置插入 13
    	cout << "3) "; 
    	PrintVector(v.begin(),v.end());						//3) 1 2 13 3 4 5
    	
    	v.erase(v.begin() + 2); 							//删除:删除位于 begin() + 2的元素
    	cout << "4) "; 
    	PrintVector(v.begin(),v.end());						//4) 1 2 3 4 5
    	
    	vector<int>  v2(4,100); 							//v2 有4个元素,都是100
    	v2.insert(v2.begin(),v.begin()+ 1,v.begin()+3);		//将v的一段插入v2开头
    	cout << "5) v2: "; PrintVector(v2.begin(),v2.end());//5) v2: 2 3 100 100 100 100
    	
    	v.erase(v.begin() + 1, v.begin() + 3);				//删除 v 上的一个区间,即 2,3
    	cout << "6) "; 
    	PrintVector(v.begin(),v.end());						//6) 1 4 5
    	return 0;
    }
    

    2、用vector实现二维数组:vector套vector

    #include <iostream>
    #include <vector>
    using namespace std;
    int main() {
    	vector<vector<int> > v(3);//v有3个元素,每个元素都是vector<int> 容器
    	for(int i = 0;i < v.size(); ++i)
    		for(int j = 0; j < 4; ++j)
    			v[i].push_back(j);
    	for(int i = 0;i < v.size(); ++i) {
    		for(int j = 0; j < v[i].size(); ++j)
    			cout << v[i][j] << " ";
    		cout << endl;
    	}
    	return 0;
    }
    /*
    程序输出结果:
    0 1 2 3
    0 1 2 3
    0 1 2 3
    */
    

    2、关于deque

    • 所有适用于 vector的操作都适用于 deque。
    • deque还有 push_front(将元素插入到前面) 和pop_front(删除最前面的元素)操作,复杂度是O(1)
  • 相关阅读:
    linux 的 sftp 和 scp
    ssky-keygen + ssh-copy-id 无密码登陆远程LINUX主机
    shell入门基础必备
    通杀所有系统的硬件漏洞?聊一聊Drammer,Android上的RowHammer攻击
    APP漏洞扫描器之本地拒绝服务检测详解
    “九头虫”病毒技术分析报告
    CSP的今世与未来
    2016云栖大会即将开幕,阿里聚安全邀您共同见证盛典
    Android安全开发之安全使用HTTPS
    iOS冰与火之歌(番外篇)
  • 原文地址:https://www.cnblogs.com/lasnitch/p/12764217.html
Copyright © 2020-2023  润新知