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

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

本文链接: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\n",it->a1,it->a2);
} printf("sizeof(NN)=%d\n",sizeof(NN));
printf("sizeof(stN)=%d\n",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\n",it->a1,it->a2);
} printf("sizeof(NN)=%d\n",sizeof(NN));
printf("sizeof(stN)=%d\n",sizeof(stN2)); printf("http://blog.csdn.net/wlsgzl/article/details/41722939"); return 0;
}

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

问题解决——在结构体中使用set保存结构体数据的更多相关文章

  1. golang中结构体中的嵌套

    package main import "fmt" type Base struct { name string } func (b *Base) m1() int { retur ...

  2. C结构体中数据的内存对齐问题

    转自:http://www.cnblogs.com/qwcbeyond/archive/2012/05/08/2490897.html 32位机一般默认4字节对齐(32位机机器字长4字节),64位机一 ...

  3. Linux中表示“时间”的结构体和相关函数

    转载于:http://blog.chinaunix.net/uid-25909722-id-2827364.html      Linux中表示“时间”的结构体和相关函数 2011-09-13 17: ...

  4. C++结构体中sizeof(1)

    sizeof sizeof操作符的作用是返回一个对象或类型名的长度,长度的单位是字节. 返回值的类型是标准库命名为size_t的类型,size_t类型定义在cstddef头文件中,该头文件是C标准库的 ...

  5. qsettings 保存自定义结构体(QVariant与自定义结构体相互转化)

    参考博文:QVariant与自定义数据类型转换的方法. 这里摘取其关键内容: 1.将自定义数据类型使用Q_DECLARE_METATYPE宏进行声明,便于编译器识别. 2.在插入对象的时候,声明QVa ...

  6. C语言中free()函数释放struct结构体中的规律

    并不是什么新鲜的事情,不过值得注意.首先我们知道,在使用struct来定义并声明一个变量时,将会自动划分出一个连续的储存空间(虽然根据某些对齐原则会出现内存间隙,但是大体上来说还是连续的)这一块连续空 ...

  7. enginefuncs_t 结构体中的函数

    就是常见的 g_engfuncs 中的函数.AMXX 里就是 fakemeta 的 EngFunc_** // 这些函数由引擎提供给EXTDLL使用.mp.dll hl.dll ... typedef ...

  8. 【VS开发】【编程开发】【C/C++开发】结构体中的数组与指针的内存分配情况说明

    [VS开发][编程开发][C/C++开发]结构体中的数组与指针的内存分配情况说明 标签:[VS开发] [编程开发] 主要是疑惑在结构体定义的数组的内存空间与指针动态分配的内存空间,在地址上连续性.以及 ...

  9. C语言 结构体中属性的偏移量计算

    //计算结构体偏移量 #include<stdio.h> #include<stdlib.h> #include<string.h> //详解:对于offscfof ...

随机推荐

  1. 正则表达式相关:C# 抓取网页类(获取网页中所有信息)

    类的代码: using System; using System.Data; using System.Configuration; using System.Net; using System.IO ...

  2. (转载)IO-同步、异步、阻塞、非阻塞

    一.概述 同步(synchronous) IO和异步(asynchronous) IO,阻塞(blocking) IO和非阻塞(non-blocking)IO分别是什么,到底有什么区别?这个问题其实不 ...

  3. x3dom 1.6 发布

    X3DOM 库的1.6版本发布了,以下是最重要的一些变化: 完整的新的文档频道 -  http://doc.x3dom.org x3dom实例频道 - http://examples.x3dom.or ...

  4. java入门基础知识点总结

    JavaScript他是一种描述性语言,其实他并不难学,只要用心学,一定会学好,我相信大家在看这篇文章的时候,一定也学过HTML吧,使用JavaScript就是为了能和网页有更好的交互,下面切入主题. ...

  5. inner Join on 随随随随随便一记

                                   幼儿园大班生(随便的记一记) JOIN 分为:内连接(INNER JOIN).外连接(OUTER JOIN).其中,外连接分为:左外连接( ...

  6. webform(内置对象)

    一.内置对象 (一)Response - 响应请求对象1.定义:Response对象用于动态响应客户端请示,控制发送给用户的信息,并将动态生成响应.Response对象只提供了一个数据集合cookie ...

  7. rabbitmq+ keepalived+haproxy高可用集群详细命令

    公司要用rabbitmq研究了两周,特把 rabbitmq 高可用的研究成果备下 后续会更新封装的类库 安装erlang wget http://www.gelou.me/yum/erlang-18. ...

  8. 请用fontAwesome代替网页icon小图标

    1. 引言 网页小图标到处可见,如果一个网页都是干巴巴的文字和图片,而没有小图标,会显得非常简陋.下面的小图标,你是不是会经常用到? 你可能说——“我们用的都是彩色的,不是黑白的”——别着急,下面会讲 ...

  9. WP修改ProgressBar的前景色

    重载默认主题中的值,修改ProgressBar的前景色 做一个小项目时,用到 ProgressBar添加一个加载效果,但是背景不是白色的,调试时发现自己选的主题色与背景色相近,特别不清晰,加载效果几乎 ...

  10. jQuery 的 ajax

    jQuery load() 方法 jQuery load() 方法是简单但强大的 AJAX 方法. load() 方法从服务器加载数据,并把返回的数据放入被选元素中. $(selector).load ...