STL基础2:vector中使用结构体
#include <iostream>
#include <vector>
#include <numeric>
#include <algorithm>
#include <string> using namespace std; #define N_K 100 struct Data_s{
int number;
char name[];
bool operator < (const Data_s &obj) const { return number < obj.number; }
bool operator > (const Data_s &obj) const { return number > obj.number; }
bool operator == (const Data_s &obj) const { return number == obj.number; }
bool operator != (const Data_s &obj) const { return number != obj.number; }
}; typedef struct Data_s Data_t; void makeData(Data_t *d)
{
int i;
for (i=;i<N_K;i++)
{
d[i].number = i;
sprintf(d[i].name,"name %02d",i);
}
} bool greaterNumber(const Data_t& d1,const Data_t& d2)
{
return d1.number>d2.number;
} template<typename T>
struct display{
void operator()(const T &x)const
{
cout<<x.number<<" "<<x.name<<endl;
}
}; int main()
{
Data_t d[N_K];
vector<Data_t> dv;
vector<Data_t>::iterator it;
makeData(d); d[].number = ;
strcpy(d[].name,"aaaa"); for (int i=;i<N_K;i++)
{
dv.push_back(d[i]);
} sort(dv.begin(),dv.end()); //升序 使用重载运算符 <
sort(dv.begin(),dv.end(),greaterNumber); //降序 使用自定义函数 greaterNumber it = unique(dv.begin(),dv.end());
for_each(dv.begin(),dv.end(),display<Data_t>()); return ;
}
STL基础2:vector中使用结构体的更多相关文章
- C++中的结构体的认识
C++中的结构体的认识 1. typedef的用法 在C/C++语言中,typedef常用来定义一个标识符及关键字的别名,它是语言编译过程的一部分,但它并不实际分配内存空间. 实例像:typedef ...
- C/C++中的结构体
结构体定义 结构体(struct)是由一系列具有相同类型或不同类型的数据构成的数据集合,也叫结构. 结构体作用 结构体和其他类型基础数据类型一样,例如int类型,char类型 只不过结构体可以做成 ...
- 再识C中的结构体
在前面认识C中的结构体中我介绍了结构体的基础知识,下面通过这段代码来回顾一下: #include<stdio.h> #define LEN 20 struct Student{ //定义结 ...
- C语言中处理结构体的原理
汇编中有几种寻址方式,分别是直接寻址:(ds:[idata]).寄存器间接寻址(ds:[bx]).寄存器相对寻址(ds:[bx + idata].ds:[bx + si])基址变址寻址(ds:[bx ...
- .NET C#基础(5):结构体 - 高性能代码的基石
0. 文章目的 本文面向有一定.NET C#基础知识的学习者,介绍C#中结构体定义.使用以及特点. 1. 阅读基础 了解C#基本语法 了解.NET中的栈与托管堆 2. 值类型 2.1 .N ...
- C++中的结构体
http://zhidao.baidu.com/link?url=8OYQSKV9mvSBc6Hkf9NsLQmipSge9VCZDJQGAZZs5PCBQ54UTmK98VRmAklEEAFYu7d ...
- C语言中的结构体,结构体数组
C语言中的结构体是一个小难点,下面我们详细来讲一下:至于什么是结构体,结构体为什么会产生,我就不说了,原因很简单,但是要注意到是结构体也是连续存储的,但要注意的是结构体里面类型各异,所以必然会产生内存 ...
- C语言中的结构体和C++中的结构体以及C++中类的区别
c++中结构体可以定义一个函数 C中的结构体和C++中结构体的不同之处:在C中的结构体只能自定义数据类型,结构体中不允许有函数,而C++中的结构体可以加入成员函数. C++中的结构体和类的异同: 一. ...
- 关于C语言中结构体中的结构体成员导致的字节对齐问题
关于结构体的字节对齐是什么,就不赘述,再此附上一篇文章,介绍字节对齐:http://www.linuxsong.org/2010/09/c-byte-alignment/ 这里的结构体字节对齐的数据类 ...
随机推荐
- appium的兼容问题
appium 和Android7.0的兼容问题 标签(空格分隔): appium 随着Android系统的不断的迭代更新,目前Android系统都已经更新到9.0系统了,有些小伙伴appium版本还是 ...
- jquery不能实时获取CKEDITOR值的解决方法
不用传统的获取值的方法: var ckeditor = document.getElementById("ckeditor").value; 换成: var ckeditor = ...
- 基本数据类型(list,tuple)
基本数据类型(list,tuple)内容: 1. 列表2. 列表的增删改查3. 列表的嵌套4. 元组和元组嵌套5. range⼀. 列表1.1 列表的介绍列表是python的基础数据类型之⼀,其他编程 ...
- poj1845(逆元+快速幂)
题目链接:https://vjudge.net/problem/POJ-1845 题意:求A的B次方的所有因子(包括1)的和对9901的模. 思路:首先对A利用唯一分解定理得A=p1x1*p2x2*. ...
- HDU-1074.DoingHomework(撞鸭dp二进制压缩版)
之前做过一道二进制压缩的题目,感觉也不是很难吧,但是由于见少识窄,这道题一看就知道是撞鸭dp,却总是无从下手....最后看了一眼博客,才顿悟,本次做这道题的作用知识让自己更多的认识二进制压缩,并无其它 ...
- vue-app项目,将px自动转化为rem
1. 安装lib-flexible: npm install --save lib-flexible 2.安装postcss-loader和postcss-px2rem: npm install -- ...
- 【git】日志提交规范
我自己总结的规范: feature: 功能添加bugfix: bug修复change: 调整,比如配置,某些方法替换等optimize: 优化过程doc: 文档变更refactor: 重构,功能不变t ...
- Django的rest_framework的视图之Mixin类编写视图源码解析
Mixin类编写视图 我们这里用auther表来做演示,先为auther和autherdetail写2个url url(r'^autherdetail/(?P<id>\d+)', view ...
- Java08-java语法基础(七)构造方法
Java08-java语法基础(七)构造方法 一.构造方法 1.什么是构造方法? 构造方法(类方法)是一个方法名和类名相容的特殊的成员方法. 2.构造方法的作用? 当使用new关键字创建一个对象时,为 ...
- HTML基础学习笔记(2)
HTML学习笔记(2) 1 head标签中的结构 编码结构:<meta charset="UTF-8"> charset---编码 ascll ansi Unicode ...