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

    万次阅读 多人点赞 2015-02-21 10:30:39
    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);
    }



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

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

    1.有时候需要将一系列字典存储在列表中或者将列表作为值存储在字典中,这称为嵌套,

    Python语言是很灵活的,

    (1).将字典放入列表中

    有时候我们希望存储很多信息,但是这些信息有互相关联或者说存于一处,而单一的字典无法满足的时候可以选择

    嵌套;例如:

    (2).灵活使用range()函数可以有效地创建多个列表或者字典

    例如:

    2.将列表放入字典中

    有时候,需要将列表存储在字典中,而不是字典存储在列表中,

    (1).当字典中的一个键对应多个值的时候,就可以把多个列表存储在字典里;例如:

    3.字典中存储字典

    可在字典中嵌套字典,但这样做时,代码很快复杂起来。例如 ,如果有多个网站用户,每个都有独特的用户名,

    可在字典中将用户名作为键,然后将每一位用户的信息存储在字典中,并将该字典作为用户名相关联的值。

    下面程序中,对每位用户,我们都存储了三项信息,名、姓和居住地;为访问这些信息,我们遍历所有的用户名,

    并访问与每个用户相关联的信息字典:

    (1).合并写法

    (2).分布式

    注意:字典中存储字典时,读取的时候考虑读取方式。

     

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

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

    什么是结构体的嵌套?

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

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

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

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

    结构体应该注意的问题?

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

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

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

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

    不用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循环嵌套的两种用法

    万次阅读 多人点赞 2016-10-29 19:09:20
    主要有两种类型的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页面,公司状态文件比较复杂,这里我写了三个简单的表格文件嵌入页面,下面红黄...
  • 嵌套事务总结

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

    千次阅读 2016-11-15 18:25:31
    本帖参看其他文章,如有侵权与我联系 方法一: 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-07-20 22:27:24
    1. 列表嵌套 类似while循环的嵌套,列表也是支持嵌套的 一个列表中的元素又是一个列表,那么这就是列表的嵌套 schoolNames = [['北京大学','清华大学'], ['南开大学','天津大学','天津师范大学'], ['山东大学...
  • 嵌套

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

    千次阅读 2019-05-17 14:35:14
    ----------------------------------页面嵌套------------------------------------ 网名在有时候做项目的过程中会遇到很多样式,也有很多系统在操作的时候的;会遇到一些大的模块操作,就像这样的 里面有几个大...
  • Iframe页面嵌套

    万次阅读 2019-05-15 19:30:53
    在做项目的时候为了方便经常会用到嵌套标签来嵌套页面。因为一个系统里会有多个大模块,每一个大模块里又有好多个小模块,而每一个小模块又是由页面构建而成。所以,做项目的时候就会在模版里面嵌套内容。在主页面上...
  • iframe标签(页面嵌套

    万次阅读 多人点赞 2019-06-18 08:49:29
    开发工具与关键技术:VS <iframe> 作者:听民谣的老猫 撰写时间:2019/6/10 18:15 上面两张图是两个不同的页面但是它们的基本框架都是一样,每点击一次左边...我们可以用页面嵌套方法来达到这一要求。页面嵌...
  • 如何将一个jsp页面嵌套在另一个页面中 这个在做网页中常要用到,有些通用的内容可集中放在一个页面文件中,其它要用到这些内容的页面只需要包含(引用)这个通用文件即可。这样便于维护,如果有很多网页,当通用内容...
  • MySQL嵌套查询详细笔记(子查询)

    万次阅读 多人点赞 2017-11-06 18:08:36
    MySQL嵌套查询(子查询)
  • java(13)List-----List嵌套

    万次阅读 2018-04-14 00:52:45
    我的需求是想一次性传递多个list。 现在在测试可以如何实现。查看test4:list<list<String>>的初始化 在我不同测试和思路中,对list传递有几个不同的猜测和实验。...test1:测试两个list的话,一个list存...
  • 如何将一个html页面嵌套在另一个页面中 1.IFrame引入 你会看到一个外部引入的文件,但会发现有一个类似外框的东西将其包围,可使用 2.方式 3.Behavior的download方式 functiononDownloadDone(downDate){ ...
  • Python 嵌套函数

    万次阅读 2017-06-28 21:35:37
    在 Python 中,函数的用法可谓是千变万化,只不过我们平日接触的大多是一些基本用法。函数强大之处当然不止于此,它还有很多高级用法 - 闭包、...这些高级用法都与嵌套函数紧密相关,所以有必要先熟悉一下嵌套函数。
  • MATLAB嵌套函数

    万次阅读 多人点赞 2017-09-20 18:32:00
    嵌套函数的定义嵌套函数,即nested function,就是嵌套在函数体内部的函数。嵌套函数可以出现在一个函数体内部的任何位置,开始以function声明,结束的时候加上end。需要说明的是包含有嵌套函数的函数,无论它是...
1 2 3 4 5 ... 20
收藏数 781,629
精华内容 312,651
关键字:

嵌套