zoukankan      html  css  js  c++  java
  • 【出错记录】变量初始化 E

    1.

    变量初始化的顺序要和定义的顺序一致,否则警告

    struct Edge;
    struct Node {
    	int dist;
    	Edge *last;
    	Node () : last(last), dist(0x7fffffff) {}
    } node[MAXN];
      8 8  [Warning] 'Node::last' will be initialized after [-Wreorder]
      7 6  [Warning] 'int Node::dist' [-Wreorder]
      9 2  [Warning] when initialized here [-Wreorder]
      9 2  [Warning] 'Node::last' is initialized with itself [-Winit-self]
     

     

    2、结构体初始化

        #include <cstdio>
    
    struct Node {
    	int a, b;
    	int arry[5];
    	Node () {                      // 结构体初始化  
    		a = 4;
    		b = 0;
    		for (int i = 1; i < 5; i++) arry[i] = 0;
    	}
    } node[6];
    
    int main() {
    	Node a;
    	printf("%d\n", a.a);
    	return 0;
    }          
    

    运行结果:

     

     注意:如果想用 {} 初始化结构体的话,结构体中不能定义构造函数

    2、vector 初始化

    转自:http://hi.baidu.com/studyarea/blog/item/57d1cb6e9570b6d881cb4adf.html

    二维vector
    动态创建m*n的二维vector
    方法一:

    vector<vector <int> > ivec;
    ivec.resize(m);
    for(int i=0;i<m;i++) ivec[i].resize(n);
    

     方法二:

    vector<vector <int> > ivec;
    ivec.resize(m,vector<int>(n));
    

    动态创建二维数组a[m][n]
    C语言版:

    #include<malloc.h>
    int **a=(int **)malloc(m*sizeof(int *));
    for(int i=0;i<m;i++)
    a[i]=(int *)malloc(n*sizeof(int));
    

    C++版:

    int **a=new int*[m];
    for(int i=0;i<m;i++) a[i]=new int[n]; 
    

     

    初始化二维数组

    vector<vector <int> > ivec(m ,vector<int>(n,0));    //m*n的二维vector,所有元素为0)); 
    
     
  • 相关阅读:
    hadoop2.3.0cdh5.0.2 升级到cdh5.7.0
    strace
    ganglia3.7.2,web3.7.1安装
    hadoop balancer
    linux-小命令
    Ceph 架构以及原理分析
    Ceph 文件存储
    Ceph 对象存储
    Ceph 块存储
    Ceph 集群搭建
  • 原文地址:https://www.cnblogs.com/ExileValley/p/7726980.html
Copyright © 2011-2022 走看看