精华内容
下载资源
问答
  • 双链表操作单链表要稍显复杂(按照单链表思路来做其实也不难),如上图,要删除p节点,首先需要将a1后驱指向a3,然后将a3前驱指向a1,最后将p节点释放掉即可。 ...
  • 我想学习还是靠自己,外面每一本书也自己写不周到地方,关键需要自己实践加上探索。 首先来说一下表单验证控件,以前我们做表单验证,如果是客户端JAVASCRIPT,不能做到美观统一,而且可以通过...
  • 你必须知道495个C语言问题

    千次下载 热门讨论 2015-05-08 11:09:25
    5.15 有没有什么简单点儿办法理解所有这些与空指针有关东西呢? 5.16 考虑到有关空指针所有这些困惑,要求它们内部表示都必须为0不是更简单吗? 5.17 说真,真有机器用非零空指针吗,或者不同类型用...
  • 需要注意是,当后台分析线程还没有结束,如果用户打开新文件进行分析,可能出现错误分析结果。这个目前没有进行测试,我想应该是这样。 这里需要提一下,其实真正分析文件时间并不会特别长,即使几百兆...
  • 《你必须知道495个C语言问题》

    热门讨论 2010-03-20 16:41:18
    5.15 有没有什么简单点儿办法理解所有这些与空指针有关东西呢? 60 5.16 考虑到有关空指针所有这些困惑,要求它们内部表示都必须为0不是更简单吗? 60 5.17 说真,真有机器用非零空指针吗,或者不同...
  • 5.15 有没有什么简单点儿办法理解所有这些与空指针有关东西呢? 60 5.16 考虑到有关空指针所有这些困惑,要求它们内部表示都必须为0不是更简单吗? 60 5.17 说真,真有机器用非零空指针吗,或者不同...
  • excel使用

    2012-11-25 17:06:01
    在Excel里,数组占用一片单元域,单元域用大括号表示,例如{A1:C3},以便和普通单元域A1:C3相区别。设置时先选定单元域,同时按Shift+Ctrl+Enter键,大括弧即自动产生,数组域得以确认。一个单元格就是一个变量...
  • 上面创建外键方法没有指定约束名称,系统会默认给外键约束分配外键约束名称,命名为student_ibfk_n, 其中student是表名,n是当前约束从1开始整数。 指定约束名称: create table student( id int auto_...
  • 看不懂没有关系,通过例子就会非常明白,依旧执行上面 SQL 语句: DECLARE @OUT_Nums INT,@IN_Score INT,@Sql NVARCHAR(MAX) SET @IN_Score = 90 SET @sql = 'SELECT @Nums=COUNT(1) FROM t_student WHERE ...
  • 这里匹配是指是字符串里有没有符合表达式规则部分。如果不使用^和$话,对于\d{5,12}而言,使用这样方法就只能保证字符串里包含5到12连续位数字,而不是整个字符串就是5到12位数字。 元字符^(和数字6在同一...
  • 你必须知道495个C语言问题(PDF)

    热门讨论 2009-09-15 10:25:47
    3.5 我可否用括号来强制执行我所需要计算顺序? . . . . . . . . . . 14 3.6 可是&& 和|| 运算符呢?我看到过类似while((c = getchar()) != EOF && c != ’nn’) 代码⋯⋯ . . . . . . . . . . . . . . . . . . ...
  • C++面向对象 class three

    2021-04-29 20:59:50
    关于带默认值函数:想象中功能强大,在使用时候同样可以带参数,但是参数必须是从左向右传递,这样时候只需要一个带默认值构造函数就可以同时实现不带参数(默认)与带参数时需求,同时也体现了函数...
    • 定义对象时如果没有参数,不需要加括号。
    • 关于带默认值的函数:比想象中功能强大,在使用的时候同样可以带参数,但是参数必须是从左向右传递的,这样有时候只需要一个带默认值的构造函数就可以同时实现不带参数(默认)与带参数时的需求,同时也体现了函数重载的意义所在。
    • 常成员:作用于对象。
    • 静态数据成员:作用于类,这个类的各个对象共享,用于定义类的常数,还可用于这个类产生了多少个对象。
    • 静态成员函数:类似于静态成员变量,整个类共享,几个使用注意的点详见代码2。
    • 引用的新理解:在传递参数时使用引用不是将对象的所有成员穿了进去,而是通过这个“别名”访问那个对象,有点指针的感觉。
    #include <iostream>
    #include <cstring>
    #include <cstdio>
    using namespace std;
    
    class Person{//要有一个构造函数包含初始构造函数
    public:
        Person(string name,int id):_id(id){//成员初始化列表,参数表一样
            _name = name;
            numOfPerson++;
        }//常成员和对象成员还有子类对父类成员的初始化只能通过成员初始化列表初始化
        Person(Person &another):_id(another._id)//拷贝构造函数
        {
            _name=another._name;
            numOfPerson++;
        }
        ~Person()
        {
            numOfPerson--;
        }
        static void getNumOfPerson()//静态成员函数
        {
            cout<<numOfPerson<<endl;
        }
        Person(int id=0);//再类里面定义的函数都是内联函数,如果不作为内联函数,在外面定义,里面声明
        //只是参数带了默认值不构成重载
        void output() const;//常函数,不允许修改类的成员,即使不是常成员
        //常函数和不是常函数的普通函数可构成重载
    private:
        string _name;
        const int _id;//常数据成员,一旦给了不可改变,只能在构造函数通过成员初始化列表给定
        static int numOfPerson;//静态数据成员,在定义体外面初始化;
    };
    
    int Person::numOfPerson = 0;//静态数据成员初始化
    //注意:静态数据成员的初始化在类体外进行,前面不加static以免与一般静态变量或者对象混淆。
    void Person::output() const{//::预限定符,全局函数
        cout<<"name: "<<_name<<endl;
        cout<<"id: "<<_id<<endl;
    }
    inline Person::Person(int id):_id(id)//可用inline,定义内联函数
    {                                    //如果有默认值,默认值只在声明时出现,定义时不出现
        _name = " ";
        numOfPerson++;
    }
    //inline:可用于在类外面定义内联函数
    int main()
    {
        int a=10;
        int b=50;
        const int *p;//p是指针,指向的值看成常数
        int const *q;//与p相同,不能改变指向的值,但可以改变指向谁
        int *const r=&a;//r本身是常数,需在定义时指向,*与const的位置决定了r是什么
        //r不能改变指向,但是可以改变指向的值
        const int *const t = &a;//指向常量的常量指针,同时具有以上两个特点
        p=&a;
        q=&a;
        a=20;
        p=&b;
        cout<<*p<<endl<<*q<<endl<<*r<<endl;
        const Person p2("Lisa",345);//常对象,数据成员不能修改
        //常对象只能调用常成员函数!
        string s1;
        int s2;
        cin>>s1>>s2;
        Person person1(s1,s2),person2(person1);
        person1.output();
        person2.output();
        person2.getNumOfPerson();
        person2.~Person();
        person1.getNumOfPerson();
        return 0;
    }
    
    
    
    • 代码2:
    #include <iostream>
    #include <cstring>
    #include <cstdio>
    using namespace std;
    class Clock{
    public:
    	Clock(int hour,string pai):_pai(pai){
    		_hour=hour;
    		numOfClock+=hour;
    	}
    	Clock(string pai=" "):_pai(pai){
    		_hour =3;
    		numOfClock+=_hour;
    	}
    	
    	static void showNum()
    	{
    //		cout<<_hour<<endl;//静态成员函数不能访问非静态成员 ,只能访问静态成员变量 
    		cout<<numOfClock<<endl;
    	}
    	
    private:
    	int _hour;
    	const string _pai;
    	static int numOfClock;
    }; 
    //错误!类的静态数据成员是静态存储,它是静态生存周期,必须进行初始化,也就是不能先声明,然后外面定义 
    //static void Clock::showNum()
    //{
    //	cout<<numOfClock<<endl;
    // } 
    int Clock::numOfClock = 0;
    int main()
    {
    	Clock c1(5,"sd");
    	c1.showNum();
    	Clock c2;
    	c2.showNum();
    	Clock::showNum();//静态成员函数可以通过类直接访问,普通成员函数不能 
    	return 0;
    	
    }
    
    
    展开全文
  • 外面套着一对大括号({})是皮,里面很多毛毛,其实一个JSON对象就好像一个字典集合,key,也value,当然,也可以没有key。你看,一个标准JSON对象大概是这样。 {  '键名' : 键值,  '键名'

    SON是啥?大家不陌生了吧,估计有人比我还懂,这玩意儿其实我只懂点皮毛,对,就是皮毛,皮和毛,皮包着毛,你看看JSON对象是不是这样?

    外面套着一对大括号({})是皮,里面有很多毛毛,其实一个JSON对象就好像一个字典集合,有key,也有value,当然,也可以没有key。你看,一个标准的JSON对象大概是这样的。

    {

          '键名' : 键值,

          '键名' :  键值,

          '键名' : 键值

    }

     

    如果是集合,如数组之类的,就多个对象放在 [ ...] 中,用逗号隔开,记得是英文的逗号。

     

     

    案例1:从JSON字符串产生JSON对象

    这个例子,我们来“调研”一下,如何从一个JSON结构的字符串生成一个JSON对象。

    1、新建一个空白页面的“板砖”风格应用。

    2、主页的布局就直接Ctrl + V XAML代码了,不然又有人说:“这和Win8有毛关系啊,这不是WPF中的XAML吗?”

    1. <Page  
    2.     x:Class="App3.MainPage"  
    3.     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"  
    4.     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"  
    5.     xmlns:local="using:App3"  
    6.     xmlns:d="http://schemas.microsoft.com/expression/blend/2008"  
    7.     xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"  
    8.     mc:Ignorable="d">  
    9.       
    10.     <Page.Resources>  
    11.         <Style x:Key="tbstyle" TargetType="TextBlock">  
    12.             <Setter Property="FontSize" Value="25"/>  
    13.         </Style>  
    14.     </Page.Resources>  
    15.   
    16.     <Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}">  
    17.         <StackPanel Margin="20">  
    18.             <Button Content="从JSON字符串生成对象" Click="onClick"/>  
    19.             <Grid Margin="5,19,6,0">  
    20.                 <Grid.RowDefinitions>  
    21.                     <RowDefinition Height="auto"/>  
    22.                     <RowDefinition Height="auto"/>  
    23.                     <RowDefinition Height="auto"/>  
    24.                     <RowDefinition Height="auto"/>  
    25.                 </Grid.RowDefinitions>  
    26.                 <Grid.ColumnDefinitions>  
    27.                     <ColumnDefinition Width="auto"/>  
    28.                     <ColumnDefinition Width="auto"/>  
    29.                 </Grid.ColumnDefinitions>  
    30.                 <TextBlock Grid.Row="0" Grid.Column="0" Text="编号:" Style="{StaticResource tbstyle}"/>  
    31.                 <TextBlock x:Name="tbNO" Grid.Column="1" Grid.Row="0" Style="{StaticResource tbstyle}"/>  
    32.                 <TextBlock Grid.Column="0" Grid.Row="1" Text="姓名:" Style="{StaticResource tbstyle}"/>  
    33.                 <TextBlock x:Name="tbName" Grid.Row="1" Grid.Column="1" Style="{StaticResource tbstyle}"/>  
    34.                 <TextBlock Grid.Column="0" Grid.Row="2" Text="城市:" Style="{StaticResource tbstyle}"/>  
    35.                 <TextBlock x:Name="tbCity" Grid.Row="2" Grid.Column="1" Style="{StaticResource tbstyle}"/>  
    36.                 <TextBlock Grid.Row="3" Grid.Column="0" Text="年龄:" Style="{StaticResource tbstyle}"/>  
    37.                 <TextBlock x:Name="tbAge" Grid.Row="3" Grid.Column="1" Style="{StaticResource tbstyle}"/>  
    38.             </Grid>  
    39.         </StackPanel>  
    40.     </Grid>  
    41. </Page>  


     

    3、后台的代码,主要是处理按钮的Click事件,我贴个完整的。

    1. using System;  
    2. using System.Collections.Generic;  
    3. using System.IO;  
    4. using System.Linq;  
    5. using Windows.Foundation;  
    6. using Windows.Foundation.Collections;  
    7. using Windows.UI.Xaml;  
    8. using Windows.UI.Xaml.Controls;  
    9. using Windows.UI.Xaml.Controls.Primitives;  
    10. using Windows.UI.Xaml.Data;  
    11. using Windows.UI.Xaml.Input;  
    12. using Windows.UI.Xaml.Media;  
    13. using Windows.UI.Xaml.Navigation;  
    14. using Windows.Data.Json;  
    15.   
    16. namespace App3  
    17. {  
    18.     /// <summary>  
    19.     /// 可用于自身或导航至 Frame 内部的空白页。  
    20.     /// </summary>  
    21.     public sealed partial class MainPage : Page  
    22.     {  
    23.         public MainPage()  
    24.         {  
    25.             this.InitializeComponent();  
    26.         }  
    27.   
    28.   
    29.         private void onClick(object sender, RoutedEventArgs e)  
    30.         {  
    31.             // JSON字符串  
    32.             string jsonString = "{" +  
    33.                                     "\"No\":\"000-2145\"," +  
    34.                                     "\"Name\":\"小王\"," +  
    35.                                     "\"City\":\"天津\"," +  
    36.                                     "\"Age\":185" +  
    37.                                 "}";  
    38.             // 生成JSON对象  
    39.             JsonObject obj = JsonObject.Parse(jsonString);  
    40.             // 从JSON对象中取出数据  
    41.             this.tbNO.Text = obj.GetNamedString("No");  
    42.             this.tbName.Text = obj.GetNamedString("Name");  
    43.             this.tbCity.Text = obj.GetNamedString("City");  
    44.             this.tbAge.Text = obj.GetNamedNumber("Age").ToString();  
    45.         }  
    46.     }  
    47. }  


    从代码中,你会看到,要处理与JSON有关的数据,先引入Windows.Data.Json命名空间。

    因为我们的JSON对象是带命名键的,所以,在生成JsonObject后,可以通过调用以下方法来取得对应字段的值:

    【对JSON来说,无非就是字符串,布尔类型,数值,数组或者复合对象】

    GetNamedArray —— 如果对应字段是一个JSON对象数组,就可以考虎调用该方法。

    GetNamedBoolean,GetNamedNumber,GetNamedString,GetNamedObject —— 这些方法就简单了,都是取出单个指定类型的值。

    现在运行一下,点击页面最上方的按钮,就会看到结果了。

     

     

    案例2:将JSON对象转换为字符串

    本个例子貌似和上面的例子相反,是将JSON对象变成字符串表示形式。

    1、新建应用程序项目。

    2、MainPage.xaml的UI如下:

    1. <Page  
    2.     x:Class="App1.MainPage"  
    3.     xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"  
    4.     xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml"  
    5.     xmlns:local="using:App1"  
    6.     xmlns:d="http://schemas.microsoft.com/expression/blend/2008"  
    7.     xmlns:mc="http://schemas.openxmlformats.org/markup-compatibility/2006"  
    8.     mc:Ignorable="d">  
    9.   
    10.     <Grid Background="{StaticResource ApplicationPageBackgroundThemeBrush}">  
    11.         <StackPanel Margin="20">  
    12.             <Button Content="生成JSON字符串" Click="onClick"/>  
    13.             <TextBox x:Name="txtJson" Margin="8,17,8,0" Height="400" TextWrapping="Wrap" FontSize="20"/>  
    14.         </StackPanel>  
    15.     </Grid>  
    16. </Page>  

    单击按钮后,生成JSON对象,并在下面的TextBox中显示转换的字符串。

     

    3、处理按钮的Click事件。记得引入Windows.Data.Json命名空间。

    1. private void onClick(object sender, RoutedEventArgs e)  
    2. {  
    3.     // 创建第一团队的成员对象  
    4.     JsonObject menb1 = new JsonObject();  
    5.     menb1.SetNamedValue("姓名", JsonValue.CreateStringValue("老刘"));  
    6.     menb1.SetNamedValue("人品指数", JsonValue.CreateNumberValue(250));  
    7.     menb1.SetNamedValue("是否砖家", JsonValue.CreateBooleanValue(true));  
    8.     JsonObject menb2 = new JsonObject();  
    9.     menb2.SetNamedValue("姓名", JsonValue.CreateStringValue("老赵"));  
    10.     menb2.SetNamedValue("人品指数", JsonValue.CreateNumberValue(97));  
    11.     menb2.SetNamedValue("是否砖家", JsonValue.CreateBooleanValue(false));  
    12.     JsonArray arr1 = new JsonArray();  
    13.     arr1.Add(menb1);  
    14.     arr1.Add(menb2);  
    15.     // 第一团队信息  
    16.     JsonObject teamA = new JsonObject();  
    17.     teamA.SetNamedValue("团队名称", JsonValue.CreateStringValue("牛B一队"));  
    18.     teamA.SetNamedValue("成员列表", arr1);  
    19.     // ------------------------------------------------------------------------------  
    20.     // 第二团队的成员  
    21.     JsonObject menbB1 = new JsonObject();  
    22.     menbB1.SetNamedValue("姓名", JsonValue.CreateStringValue("小黄"));  
    23.     menbB1.SetNamedValue("人品指数", JsonValue.CreateNumberValue(108));  
    24.     menbB1.SetNamedValue("是否砖家", JsonValue.CreateBooleanValue(false));  
    25.     JsonObject menbB2 = new JsonObject();  
    26.     menbB2.SetNamedValue("姓名", JsonValue.CreateStringValue("小龙"));  
    27.     menbB2.SetNamedValue("人品指数", JsonValue.CreateNumberValue(392));  
    28.     menbB2.SetNamedValue("是否砖家", JsonValue.CreateBooleanValue(true));  
    29.     JsonObject menbB3 = new JsonObject();  
    30.     menbB3.SetNamedValue("姓名", JsonValue.CreateStringValue("老袁"));  
    31.     menbB3.SetNamedValue("人品指数", JsonValue.CreateNumberValue(65));  
    32.     menbB3.SetNamedValue("是否砖家", JsonValue.CreateBooleanValue(false));  
    33.     JsonArray arr2 = new JsonArray();  
    34.     arr2.Add(menbB1);  
    35.     arr2.Add(menbB2);  
    36.     arr2.Add(menbB3);  
    37.     // 第二团队信息  
    38.     JsonObject teamB = new JsonObject();  
    39.     teamB.SetNamedValue("团队名称", JsonValue.CreateStringValue("牛B二队"));  
    40.     teamB.SetNamedValue("成员列表", arr2);  
    41.   
    42.     // 将两个团队的信息放到一个数组中  
    43.     JsonArray teams = new JsonArray();  
    44.     teams.Add(teamA);  
    45.     teams.Add(teamB);  
    46.   
    47.     // 将以上JSON对象转换为字符串  
    48.     this.txtJson.Text = teams.Stringify();  
    49. }  


    上面代码演示两个牛B团队的基本信息,而每个团队中又包含各自的成员信息。

    结果就像下图所示:

     

    是不是觉得这种生成JSON的方法有些复杂有点痛苦呢? 勿急,下一篇博文,我们将玩一些简单的东东。


    转载:http://blog.csdn.net/tcjiaan/article/details/8181482

    展开全文

空空如也

空空如也

1 2 3 4 5 6
收藏数 109
精华内容 43
关键字:

有没有比大括号还大的括号