• C++ 结构体初始化


      结构体是C++常用的数据结构,其初始化可以如下:

    #include<bits/stdc++.h>
    using namespace std;
    
    struct Node{
        int M, V;
        Node(int a, int b){
            M = a;
            V = b;
        }
    
    };
    
    int main(){
        Node n1(1, 65), n2(5, 23), n3(2, 99);
        cout << n1.M << ' ' << n1.V << endl;
        cout << n2.M << ' ' << n2.V << endl;
        cout << n3.M << ' ' << n3.V << endl;
        
    } 

       此外,结构体还可以重载操作符,如:

    #include<bits/stdc++.h>
    using namespace std;
    
    struct Node{
        int M, V;
        Node(int a, int b){
            M = a;
            V = b;
        }
        friend bool operator < (const Node n1, const Node n2){
            return n1.V < n2.V;
        }
        friend bool operator > (const Node n1, const Node n2){
            return n1.V > n2.V;
        }
        friend ostream &operator << (ostream &os, const Node n){
            os << n.M << ' ' << n.V;
            return os;
        }
    };
    
    int main(){
        Node n1(1, 65), n2(5, 23), n3(2, 99);
        
        if(n1 < n2) cout << n1 << endl;
        else cout << n2 << endl;
    } 

       自然,结构体也可以配合STL一起使用,如配合优先队列使用,注意在只用有优先队列是必须重载小于号,只重载大于号是不可以的:

    #include<bits/stdc++.h>
    using namespace std;
    
    struct Node{
        int M, V;
        Node(int a, int b){
            M = a;
            V = b;
        }
        friend bool operator < (const Node n1, const Node n2){
            return n1.V < n2.V;
        }
        friend bool operator > (const Node n1, const Node n2){
            return n1.V > n2.V;
        }
        friend ostream &operator << (ostream &os, const Node n){
            os << n.M << ' ' << n.V;
            return os;
        }
    };
    
    int main(){
        Node n1(1, 65), n2(5, 23), n3(2, 99);
        
        priority_queue<Node> pq;
        pq.push(n1), pq.push(n2), pq.push(n3);
        
        while(!pq.empty()){
            Node n = pq.top();
            pq.pop();
            cout << n << endl;
        }
    } 
  • 相关阅读:
    flex布局中transform出错
    RabbitMQ系列之Centos 7安装RabbitMQ 3.6.1
    解决windows下FileZilla server中文乱码问题
    IIS 7.5 + PHP-5.6.3 + mysql-5.6.21.1
    C# 速编神器LinqPad(新版6.5)
    一个MySql Sql 优化技巧分享
    IIS反向代理/Rewrite/https卸载配置
    zerotier 远程办公方案
    一次Mysql连接池卡死导致服务无响应问题分析(.Net Mysql.Data 6.9.9)
    ExpressCache
  • 原文地址:https://www.cnblogs.com/Vincent-Bryan/p/6622790.html
Copyright © 2020-2023  润新知