• 容器


      对于C++而言,其实书是看了很多遍的,但是每次看到容器这一章(或者说很多教材就没有这一章)的时候,都只是随便看看,没有真正写代码去实现验证的,所以说,在这里只是初识,到刚才,看到容器、迭代器我就晕乎乎的,但是我不能再晕乎乎下去了,坚决要攻下容器迭代器这一关。下面就慢慢来学习吧....

      容器,我的理解就是一个无限大的盆子,里面可以放很多同类型的东西,你可以往里面放东西,也可以往里面取东西,当然你也可以只是看看里面的东西而已。但是,不同类型的容器,对于东西的存取规则是不一样的,当然,这是以后要说的事情了...

      迭代器,是用来访问、遍历容器的,是为容器而生,每个容器都有一个迭代器。对于迭代器而言,通过不同的方法即可实现对容器的各种操作。

      简单的例子:

    #include <list>
    #include <vector>
    #include <deque>
    #include <iostream>
    
    using namespace std;
    using std::vector;
    
    int main()
    {
    	vector<int> v1;//申明一个容器 
    	vector<int>::iterator iv1, iv2;//声明两个对应的迭代器 
    	int a;
    	
    	for( int i=0; i<10; i++ ) v1.push_back( i );//往容器里面添加元素 
    	iv1 = v1.begin();//获取第一个元素 
    	iv2 = v1.end();//获取最后一个元素的下一个元素,代表非法元素,用作哨兵 
    	//a = v1.begin();
    	//while( !v1.empty() )
    	while( iv1!=iv2 )
    	{
    		//cout << v1[v1.size()-1] << "\n";//通过 下标访问 
    		//v1.pop_back();
    		cout << *iv1 << "\n";//通过*来访问迭代器所指向的容器元素 
    		iv1++;//迭代器自增遍历容器 
    	}
    	
    	{//因为重命名的冲突,偷懒加了个花括号	
    		vector<char> v2( 15 );
    		vector<char>::iterator iv2;
    		for( vector<char>::iterator iv2=v2.begin(); iv2!=v2.end(); iv2++ )
    		{
    			*iv2 = 'G';
    		}
    		iv2 = v2.begin();
    		while( iv2!=v2.end() )
    		{
    			cout << *iv2++ ;
    		}
    		//迭代器不仅有自增,而且可以通过+n或者-n来访问容器元素,只要合法就行 
    		for( vector<char>::iterator iv2=v2.begin(); iv2!=v2.end(); iv2+=3 )
    		{
    			*iv2 = 'b';
    		}
    		iv2 = v2.begin();
    		cout << "\n迭代器增加n:";
    		while( iv2!=v2.end() )
    		{
    			cout << *iv2++ ;
    		}
    	}
    	
    	return 0;
    }



  • 相关阅读:
    webp实践的javascript检测方案
    码农不算程序员 :)
    解决 phpmyadmin #2002 无法登录 MySQL 服务器
    xmlhttprequest upload
    shape-outside 矩形之外的另一种思路
    百度搜索词&淘宝搜索词 接口实现
    Sublime Text 2 破解 on Mac
    利用a标签自动解析URL
    rc4加密解密
    国内的一些前端框架
  • 原文地址:https://www.cnblogs.com/arbboter/p/4225261.html
Copyright © 2020-2023  润新知