• 问题解决——在结构体中使用set保存结构体数据


    =====================声明==========================

    本文原创,转载请明确的注明出处和作者,并保持文章的完整性(包括本声明部分)。

    本文链接:http://blog.csdn.net/wlsgzl/article/details/41722939

    ==================================================

    至于为什么会使用这么奇葩的东西……为了部落的荣耀

    ----------------------------------------------------------------------------------------

    在结构体中使用STL的set,比使用vector等要复杂一点,感觉是因为set的存储用到了树,所以要写“<”。

    上示例代码。

    #include <iostream>
    #include <set>
    
    using namespace std;
    
    struct AA 
    {
    	int a1;
    	int a2;
    
    	bool operator < (const AA& oDR) const
    	{
    		return a1<oDR.a1;
    	}
    };
    
    struct NN
    {
    	std::set<AA> stSet;
    };
    
    int main(int argc, char* argv[])
    {
    	NN stN1;
    
    	for(int i=6;i>0;i--)
    	{
    		AA stA;
    		stA.a1=i;
    		stA.a2=10*i;
    		stN1.stSet.insert(stA);
    	}
    
    	std::set<AA>::iterator it=stN1.stSet.begin();
    	std::set<AA>::iterator itEnd=stN1.stSet.end();
    
    	for(;it!=itEnd;it++)
    	{
    		printf("vector: a1=%d,a2=%d
    ",it->a1,it->a2);
    	}
    
    	printf("sizeof(NN)=%d
    ",sizeof(NN));
    	printf("sizeof(stN)=%d
    ",sizeof(stN1));
    
    	//////////////////////////////////////////////////////////////////////////
    	NN stN2;
    	stN2.stSet=stN1.stSet;
    	stN1.stSet.clear();
    
    	it=stN2.stSet.begin();
    	itEnd=stN2.stSet.end();
    
    	for(;it!=itEnd;it++)
    	{
    		printf("vector: a1=%d,a2=%d
    ",it->a1,it->a2);
    	}
    
    	printf("sizeof(NN)=%d
    ",sizeof(NN));
    	printf("sizeof(stN)=%d
    ",sizeof(stN2));
    
    	printf("http://blog.csdn.net/wlsgzl/article/details/41722939");
    
    	return 0;
    }

    =====================分割线跟你说再见=======================

  • 相关阅读:
    this.$route和this.$router的区别
    HTTP请求方式中get和post的区别
    如何使用NPM?CNPM又是什么?
    javascript通过navigator.userAgent识别各种浏览器
    用JS添加和删除class类名
    前端布局神器display:flex
    强大的display:grid
    自动化测试的那些事儿
    selenium家族发展史
    第八章、函数进阶之字典生成式与匿名函数
  • 原文地址:https://www.cnblogs.com/wlsandwho/p/4202072.html
Copyright © 2020-2023  润新知