嵌套_嵌套循环 - CSDN
精华内容
参与话题
  • C++ 中的嵌套类和局部类

    万次阅读 多人点赞 2015-02-21 10:30:54
    C++ 中的嵌套类和局部类   最近趁着春节假期空闲,找了本C++ Primer 学了几章,发现C++ 中的许多特性自己都不知道。其中嵌套类和局部类感觉还是蛮有用的,简单的写写他们的用法。 嵌套类 所谓嵌套类就是...

    C++ 中的嵌套类和局部类

     

    最近趁着春节假期空闲,找了本C++ Primer 学了几章,发现C++ 中的许多特性自己都不知道。其中嵌套类和局部类感觉还是蛮有用的,简单的写写他们的用法。

    嵌套类

    所谓嵌套类就是可以在一个类中定义另一个类。这个被嵌套的类的作用域就只在它的上一级类中。下面是个例子:

    #include <iostream>
    using namespace std;
    
    class c1
    {
    public:
        int a;
        void foo();
        class c2
        {
        public:
            int a;
            void foo();
        } b;
    };
    void c1::foo()
    {
        a = 1;
    }
    void c1::c2::foo()
    {
        a = 2;
    }
    
    int main()
    {
    
        class c1 f;
        f.foo();
        f.b.foo();
        cout << f.a << endl;
        cout << f.b.a << endl;
        return 0;
    }

    其实在C语言中也有类似的用法,在一个结构体中嵌套另一个结构体,或者在一个结构体中嵌套一个union 。我们还知道,语言中被嵌套的结构体或union 通常是匿名的。在C++中也是可以的,我们可以在一个类中嵌套另外一个匿名类。不过,匿名类的成员函数只能在类的声明中同时定义,因为这个类没有名称,我们没法在外部指代它。

    下面就是一个类似的例子:

    class c3
    {
    public:
        int a;
        void foo() {a = 3;}
        class
        {
        public:
            int a;
            void foo() {a = 4;}
        } b;
    };
    
    int main()
    {
    
        class c3 ff;
        ff.foo();
        ff.b.foo();
        cout << ff.a << endl;
        cout << ff.b.a << endl;
        return 0;
    }

    局部类

    所谓局部类,就是定义在一个函数内部的类,这个类只能在这个函数内部使用。下面是个例子:

    int main()
    {
        class c4
        {
        public:
            int a;
            void foo() {a = 4;}
        };
    
        class c4 ff;
        ff.foo();
        cout << ff.a << endl;
        return 0;
    }

    通常,嵌套类和局部类的所有成员变量我们都会声明为共有的。因为这两种类只在很小的范围内使用,没有必要通过定义接口来隐藏内部的信息。所以,可以把 class 改换成 struct,这样就可以不写public 了。

     

    另外,多说一句,函数是不能嵌套的。比如下面的例子是无法编译通过的。

    int main()
    {
        void foo() { cout << "WRONG";};
    
        foo();
    }

    但是我们可以通过一些变通的方法来模拟出一个局部函数来。具体来说就是通过重载一个类的operator () 方法来模拟一个函数调用,下面给个例子:

    int main()
    {
        struct
        {
            void operator () ( void )
            {
                cout << "HELLO" << endl;
            }
            int operator() (int a, int b)
            {
                return a + b;
            }
        } foo;
    
        foo();
        cout << foo(1, 2);
    }



    展开全文
  • 结构体的嵌套 自身嵌套 相互嵌套

    万次阅读 多人点赞 2019-08-13 08:47:51
    什么是结构体的嵌套? 在结构体的定义中,结构体的成员又是另外一个结构体的变量。 结构体嵌套的问题有哪些? 结构体的自引用,就是在结构体内部,包含指向自身类型结构体的指针。 结构体的相互引用,就是说在多...

    什么是结构体的嵌套?

    在结构体的定义中,结构体的成员又是另外一个结构体的变量。

    结构体嵌套的问题有哪些?

    结构体的自引用,就是在结构体内部,包含指向自身类型结构体的指针。

    结构体的相互引用,就是说在多个结构体中,都包含指向其他结构体的指针。

    结构体应该注意的问题?

    结构体定义中可以嵌套其他结构体类型的变量,不可以嵌套自己这个类型的变量。

    可以嵌套自己类型的指针。

    *********************************自引用结构体******************************

    ****************************************************************************

    不用TYPEDEF——错误的方式:    

    #include<iostream>
    using namespace std;
    struct tag_1{
            struct tag_1 A; //A是一个结构体,A的内部还会有一个结构体,以此下>去,无线循环。在内存分配的时候,由于无限的嵌套,无法确定结构体的长度,所>以时非法的。
            int value;
    };
    int main()
    {
            return 0;
    }
    

    不用TYPEDEF——正确的方式:    

    #include<iostream>
    using namespace std;
    struct tag_1
    {
            struct tsg_1 *A;
    //由于指针的长度时确定的(在32位机器上指针长度是4),所以编译器能够确定该
    结构体的长度
    //这个指针看似指向自身,其实不是,而是执行同一类型的不同结构。
            int value;
    };

    用TYPEDEF——错误的方式:

    #include<iostream>
    using namespace std;
    typedef struct{
            int value;
            NODE *link;
    }NODE;
    //使用typedef为结构体创建一个别名NODE。
    //但是是错误的,因为类型名的作用域是从语句结尾开始的,而在结构体内部是不>能使用的,因为还没有定义。
    

    *********************************相互引用结构体******************************

    *******************************************************************************

    用TYPEDEF——错误的方式:

    #include<iostream>
    using namespace std;
    typedef struct tag_a
    {
            B *bp;
            int value;
    }A;
    typedef struct tag_b
    {
            A *ap;
            int value;
    }B;
    //错误的,在类型B在定义之前就被引用

    用TYPEDEF——正确的方式(“不完全声明”):

    #include<iostream>
    using namespace std;
    //正确的方式 使用不 完全声明
    typedef struct tag_a A;
    typedef struct tag_b B;
    struct tag_a
    {
    //      struct tag_b *bp;
            B *bp;
            int value;
    };
    struct tag_b
    {
    //      struct tag_a *ap;
            A *ap;
            int value;
    };
    

    ********************************结构体嵌套的三种正确形式************************

    ***********************************************************************************

    typedef struct tag_1
    {
            int value;
            struct tag_1 *link;
    }NODE;
    typedef struct tag_1 NODE;
    struct tag_1
    {
            int value;
            NODE *link;
    };
    struct tag_1
    {
            int value;
            struct tag_1 *link;
    };
    typedef struct tag_1 NODE;

    结构体自身嵌套时候要注意:

        结构体内部定义了一个指向结构体的指针,指针的大小在具体的机器平台和编译器环境中都是已知的(即使不同的平台环境的定义不完全相同)。但是要提醒的是:这个指针看似指向自身,其实不是,而是指向同一类型的不同结构。

    链表和树的数据结构就都使用到此技巧。自身的结构体指针指向下一节点或者下一子树的地址。

    /* 错误的表示*/
    typedef struct  //这里是结构体类型的定义 
    {
            int value;
            s_ref_1 *link;//注意这局引用了结构体类型名              
    }s_ref_1;//ISO C++ 不允许声明无类型的‘s_ref_1’
    
    
    /* 正确的表示*/
    typedef struct s_ref_t //这里是结构体类型定义 和 结构体标签
    {
            int value;
            struct s_ref_t *link;//注意这句话与上面相同位置的区别,使用了标签
    }s_ref_2;
    展开全文
  • for循环嵌套的两种用法

    万次阅读 多人点赞 2020-05-24 10:53:43
    主要有两种类型的for循环嵌套,下面来介绍这两种类型循环嵌套的用法以及事例。 一:内外循环独立进行 #include void main() { int i,j; char a[5]="$$$$$"; for(i=0;i;i++) { for(j=0;j;j++) ...

      本人今后不定期在CSDN上更新博客,大部分内容将会更新在个人博客:www.lijugang.com中!

    主要有两种类型的for循环嵌套,下面来介绍这两种类型循环嵌套的用法以及事例。

    一:内外循环独立进行

    #include<stdio.h>
    void main()
    	{
    		
    		int i,j;
    		char a[5]="$$$$$";
    		for(i=0;i<5;i++)
    		{
    			for(j=0;j<5;j++)
    			printf("%c",a[j]);
    			printf("\n");
    		}
    			
    	}

    二:内部循环依赖于外部循环

    #include<stdio.h>
    void main()
    	{
    		
    		int i,j;
    		char a[5]="$$$$$";
    		for(i=0;i<5;i++)
    		{
    			for(j=0;j<=i;j++)
    			printf("%c",a[j]);
    			printf("\n");
    		}
    			
    	}

            第一种方式中,内部循环进行5次,外部循环也进行5次,相当于外部循环把内部循环的结果打印了5次,为什么呢?因为内部循环的条件是固定的(j<5),每次外部循环,内部循环都要进行5次,效果大家可想而知。第二种方式中,当外部循环进行第一次时,即i=0时,由于内部循环的条件为j<=i,此时0<=0,满足循环条件,在这种方式中,内部循环的条件每次都是变化的。因此,当外部循环进行一次时,内部循环进行打印出数组a[5]中的第一个元素a[1],即打印出一个$。以此类推打印出了a[5]中的所有元素。

           以下是两种方式打印的结果:



    推荐一个不错的博主,里面有很全面的全栈开发内容,https://how2j.cn/k/control-flow/control-flow-if/271.html?p=149636

     

    展开全文
  • 页面嵌套的实现

    千次阅读 2019-04-15 11:03:32
    向客户展示系统输出的状态文件时,需要切换不同的URL到不同的页面,这样比较麻烦。... 我是使用<...这里实现的是嵌套三个html页面,公司状态文件比较复杂,这里我写了三个简单的表格文件嵌入页面,下面红黄...

    向客户展示系统输出的状态文件时,需要切换不同的URL到不同的页面,这样比较麻烦。于是想到只打开一个页面,然后在这个页面点击相应按钮显示对应的页面,即页面嵌套。
    我是使用<iframe>元素实现的,且不说<iframe>能耗高,安全性太差这些缺点,就它的功能来说是很强大的。

    这里实现的是嵌套三个html页面,公司状态文件比较复杂,这里我写了三个简单的表格文件嵌入页面,下面红黄蓝表格分别是三个外部的html文件。
    在这里插入图片描述

    1.介绍

    HTML内联框架元素 <iframe> 表示嵌套的浏览上下文,可以有效地将另一个HTML页面嵌入到当前页面中。
    提示:HTML 与 XHTML 之间的差异:在HTML4.1 Strict DTD和XHTML1.0 Strict DTD中,不支持iframe元素。
    可以把需要的文本放置在<iframe></iframe>之间,这样就可以应对无法理解iframe的浏览器。

    2.页面嵌套实现

    1. 主页面index.html文件代码实现:

      <!DOCTYPE html>
      <html lang="en">
      <head>
      	<meta charset="UTF-8" http-equiv="refresh" content="1800">
      	<title>质量监控系统状态文件</title>
      </head>
      <style type="text/css">
      	body{
      		padding: 0px;
      		margin: 0px;
      	}
      	.btn{
      		height: 50px;
      		margin-left: 75px;
      	}
      	.btn button {
      	    line-height: 30px;
      	    width: 120px;
      	    margin: 5px;
      	}
      	#aaa{
      		width: 99%;
      		height: 800px;
      	}
      </style>
      <body>
      	<div class="btn">
      		<button onclick="changeto('App')">App</button>
      		<button onclick="changeto('Bcp')">Bcp</button>
      		<button onclick="changeto('newApp')">newApp</button>
      	</div>
      	
      	<!-- //设置页面初始化时显示的页面 -->
      	<iframe src="D:\webfront\jsnext\App.html" id="aaa" onload="init()"></iframe>
      
      	<script type="text/javascript">
      		//按钮切换功能实现
      		function changeto(name){
      			frame = document.getElementById('aaa');
      			//获取要嵌套页面的文件名
      			frame.src = "D:\\webfront\\jsnext\\"+name+'.html';
      		}
      		//页面初始化功能实现
      		function init(name){
      			frame = document.getElementById('aaa');
      			//设置窗口高度
      			frame.hight = document.body.clientHeight-30;
      		}
      	</script>
      </body>
      </html>
      
    2. 嵌套的子页面App.html实现

      <!DOCTYPE html>
      <html lang="en">
      <head>
      	<meta charset="UTF-8">
      	<title>Document</title>
      	<style type="text/css">
      		table{
      			width: 90%;
      			height: 800px;
      			margin: 0 auto;
      			background: yellow;
      		}
      	</style>
      </head>
      <body>
      	<table border="1">
      		<tr>
      		<td>1111</td>
      		<td>2222</td>
      		<td>3333</td>
      		<td>4444</td>
      	</tr>
      	<tr>
      		<td>1111</td>
      		<td>2222</td>
      		<td>3333</td>
      		<td>4444</td>
      	</tr>
      	<tr>
      		<td>1111</td>
      		<td>2222</td>
      		<td>3333</td>
      		<td>4444</td>
      	</tr>
      	<tr>
      		<td>1111</td>
      		<td>2222</td>
      		<td>3333</td>
      		<td>4444</td>
      	</tr>
      	</table>
      	
      </body>
      </html>
      
    3. 嵌套的子页面Bcp.html、newApp.html实现
      子页面Bcp.html、newApp.html代码同App.html页面代码,只是表格中内容发生改变,背景颜色发生变化,用于区分不同页面的显示效果。

    实现结果为:
    在这里插入图片描述

    每天进步一点点、充实一点点、快乐一点点、加油!

    展开全文
  • Python基础13-字典中的嵌套

    千次阅读 2019-01-30 18:13:50
    1.有时候需要将一系列字典存储在列表中或者将列表作为值存储在字典中,这称为嵌套, Python语言是很灵活的, (1).将字典放入列表中 有时候我们希望存储很多信息,但是这些信息有互相关联或者说存于一处,而单一...
  • 嵌套事务总结

    万次阅读 多人点赞 2018-10-14 01:10:11
    最近线上发生了一起故障,是关于嵌套事务未回滚的问题,这里记录一下。 发生故障的场景是:  主方法parent()里调child()方法,当child()抛出异常时,parent()和child()均未回滚。背景先介绍到这里,...
  • <c:foreach></c:foreach>嵌套的几种方式

    千次阅读 2016-11-15 18:31:13
    本帖参看其他文章,如有侵权与我联系 方法一: List list = new ArrayList(); list.add("a"); list.add("b"); list.add("c"); List member = new ArrayList(); member.add("hello");...request
  • 因为学习比较晚,我用的相关版本为SDK4.1、eclipse4.2,而自己看的教材都是低版本的,这造成了细节上的不同,有时候给学习造成了不小的困扰,不过这样也好,通过解决问题获得的知识理解更加深刻一点,这篇文章...
  • 内部类(嵌套类)

    千次阅读 2018-08-05 14:21:50
    内部类也叫嵌套类,就是在类中再定义一个类,这个内部类也相当于时外部类的一个成员   2.内部类与外部类的相互访问 1)内部类不能直接访问外部类的成员 2)内部类可以通过创建一个外部类的对象来访问外部类的...
  • 嵌套

    2018-10-03 22:14:56
    目录 ...嵌套类分为两种:静态嵌套类和内部类。内部类中又有两种特殊的内部类:局部类和匿名类。如果局部类只使用一次,则使用匿名类更简洁。如果实现的接口只有一个方法,则lambda表达式更简洁。...
  • 列表的嵌套

    千次阅读 2018-07-20 22:27:24
    1. 列表嵌套 类似while循环的嵌套,列表也是支持嵌套的 一个列表中的元素又是一个列表,那么这就是列表的嵌套 schoolNames = [['北京大学','清华大学'], ['南开大学','天津大学','天津师范大学'], ['山东大学...
  • Iframe页面嵌套

    万次阅读 2019-05-15 19:30:53
    在做项目的时候为了方便经常会用到嵌套标签来嵌套页面。因为一个系统里会有多个大模块,每一个大模块里又有好多个小模块,而每一个小模块又是由页面构建而成。所以,做项目的时候就会在模版里面嵌套内容。在主页面上...
  • 嵌套查询的弊端:即嵌套查询的N+1问题 尽管嵌套查询大量的简化了存在关联关系的查询,但它的弊端也比较明显:即所谓的N+1问题。关联的嵌套查询显示得到一个结果集,然后根据这个结果集的每一条记录进行关联查询。 ...
  • SQL Case When 嵌套

    万次阅读 2016-06-30 10:42:13
    select name,case when CODE='ST' then ... else  (case when numbers is null then 1 else numbersnew/numbersold end) end  as times   from TABLENAME where Condition ...SELECT CASE WHEN (CASE WH
  • 关于ORACLE的case when 嵌套语句

    万次阅读 2017-02-16 11:09:28
    CASE WHEN T12.ISPRINT='1' THEN CASE WHEN T.VECENTYPE='3' THEN CASE WHEN T3.PRBNSCOPE_NAME IS NOT NULL THEN T3.PRBNSCOPE_NAME ELSE CRTMIS.GETBNSCOPE(T3.BNSCOP
  • while循环嵌套

    万次阅读 2018-07-13 11:53:50
    while循环嵌套前面学习过if的嵌套了,想一想if嵌套是什么样子的?类似if的嵌套,while嵌套就是:while里面还有while&lt;1&gt;while嵌套的格式 while 条件1: 条件1满足时,做的事情1 条件1满足时,做的...
  • C 程序必须由一个或一个以上的函数组成 函数可以嵌套调用但不可以嵌套定义
  • SQL的 case when语句嵌套使用

    万次阅读 2016-05-17 14:54:37
    SQL的 case when语句嵌套使用     下载LOFTER 我的照片书 | 1、简单的case when语句:  case sex when ’1' then '男' when ’2’ then '女’else ’其他’ end 2、复杂的case ...
  • vue中嵌套页面(iframe)

    万次阅读 2018-03-08 18:24:57
    vue中嵌套iframe,将要嵌套的文件放在static下面。src可以使用相对路径,也可使用服务器根路径http:localhost:8088/… &lt;iframe src="../../static/plusPro.html" width="1200" height=&...
  • C语言函数嵌套定义问题

    万次阅读 2017-03-04 21:54:37
    几乎所有的C语言教材上都说C语言函数可以嵌套调用,但不可以嵌套定义。实际上,函数能否嵌套定义与编译器有关,在GCC编译器下嵌套定义没问题,可以正常运行,我在code blocks 和 Dev C++两个IDE(两者都用GCC)...
1 2 3 4 5 ... 20
收藏数 759,142
精华内容 303,656
关键字:

嵌套