一般我们使用struct时需要在头文件中定义,例如

struct Example

{

  int a;

  char b;

  ...

};

这样将数据打包好必须在程序运行之前将其定义好,如果有需求在程序运行时添加数据,就无法达到目的。

例如我需要向Example通过读取文件的方法来定义它所包含的变量。在python中。有一个结构叫做元组,如{“abcd”,1,1.23}。它可以存放各种类型的数据,并且可以动态添加或者删除。我需要用C++实现元组的形式。

思路很简单,我们写一个类CAnyType,此类可以存放各种类型的数据并且只能存放一个数据。如CAnyType a,b,c...

a="hello world"

b='a'

c=1

...

class CAnyType //: public CObject
{
public:
CAnyType();
//DECLARE_SERIAL(CAnyType)
virtual ~CAnyType(); protected: CString DataType;
union{
int myint;
double mydouble;
float myfloat;
wchar_t mychar;
CString mystring;
  }; public:
CAnyType operator=(const int &in){myint=in;DataType=L"int";return *this;}
CAnyType operator=(const wchar_t &in){mychar=in;DataType=L"char";return *this;}
CAnyType operator=(const float &in){myfloat=in,DataType=L"float";return *this;}
CAnyType operator=(const double &in){mydouble=in;DataType=L"double";return *this;}
CAnyType operator=(const LPCTSTR lpctstring){mystring=lpctstring;DataType=L"string";return *this;}
}

我们首先将基础数据类型或可能用到的数据类型放入类中做成员变量,为了节省内存,可放入联合中。

然后我们为每种数据类型重载操作符=,这个类现在就可以接受预定的任意数据类型了。如果需要其他操作(大于,小于等),可自己重载操作符。

最后我们需要制成一个元组只需new一个数组就完成了。

CAnyType *a=new CAnyType[size]

为元组赋值

a[0]=1.1

a[1]=2

...

a[size-1]="end"

C++实现元组的更多相关文章

  1. python 数据类型 -- 元组

    元组其实是一种只读列表, 不能增,改, 只可以查询 对于不可变的信息将使用元组:例如数据连接配置 元组的两个方法: index, count >>> r = (1,1,2,3) &g ...

  2. 【.NET深呼吸】元组数据(Tuple)

    各位观众,大家好,欢迎收看由火星电视台直播的<老周吹牛>节目,注意:本节目没有任何技术含量,如果您没有兴趣,请砸掉电视机. 今天说一下System命名空间下的一个数据类型——Tuple,翻 ...

  3. python学习笔记(列表、元组、购物车实例)

    一.列表 列表和字典是最常用的两种数据类型 1. 需求:怎么存放班级80多人的姓名,如何实现? names = ["Zhangyang","Guyun",&qu ...

  4. python之最强王者(7)——元组(tuple)

    1.序列(sequence): 说明:在前面的字符串列表中其实我们已经用到了序列,之所以放到这篇来讲主要是为了承上启下,方便理解和记忆. python的数据访问模型:直接存取 ,序列 ,映射 对非容器 ...

  5. Python元组

    Python的元组与列表类似,不同之处在于元组的元素不能修改. 元组使用小括号,列表使用方括号. 元组创建很简单,只需要在括号中添加元素,并使用逗号隔开即可. 如下实例: tup1 = ('physi ...

  6. Scala元组

    object TupleTest { def basic(firstName: String, lastName: String, age: Int): (String, String, Int) = ...

  7. python 的 集合,字典,元组,列表

    元组 tuple  a = (1,2,3) 元组不能修改 可权嵌套列表  如 (1,2,3,[1,2,3]) 里面的列表可修改  一般不这样用 列表list  a = [1,2,3] 集合set  a ...

  8. Python列表和元组

    Python是没有数组的概念,但是和数组比较相近的概念是列表和元素. 下面两个例子展示列表和元组. # coding=utf-8 # 元组 students = ('小明', '小黄', '小李', ...

  9. c# 元组Tuple

    Tuple类型像一个口袋,在出门前可以把所需的任何东西一股脑地放在里面.您可以将钥匙.驾驶证.便笺簿和钢笔放在口袋里,您的口袋是存放各种东西的收集箱.C# 4.0引入的一个新特性 Tuple类型与口袋 ...

  10. Python黑帽编程2.3 字符串、列表、元组、字典和集合

    Python黑帽编程2.3  字符串.列表.元组.字典和集合 本节要介绍的是Python里面常用的几种数据结构.通常情况下,声明一个变量只保存一个值是远远不够的,我们需要将一组或多组数据进行存储.查询 ...

随机推荐

  1. 问题-File not "controls.res"(XE2+Win7虚拟机)

    问题现象:我在Win7的虚拟机中安装XE2,前提是原来的系统上有D2007,安装后,新建个工程,F9报"File not controls.res".百思不得其解. 问题原因:因为 ...

  2. A Tour of Go Buffered Channels

    Channels can be buffered. Provide the buffer length as the second argument to make to initialize a b ...

  3. hdoj 4548 美素数

    美素数 Time Limit: 3000/1000 MS (Java/Others)    Memory Limit: 65535/32768 K (Java/Others)Total Submiss ...

  4. poj 4045 (树形DP)

    先选一点为根节点找出所有父节点i到下面所有点距离和dp[i],该父节点下面有多少个点Node[i]. 然后求出所有节点的所有非子节点到该点的距离dp1[v]+=(dp1[u]+(dp[u]-dp[v] ...

  5. Tokumx 安装指南(做法如同MongoDB)

    安装说明系统环境:Centos-6.3安装软件:mongodb-linux-x86_64-2.2.2.tgz下载地址:http://www.mongodb.org/downloads安装机器:192. ...

  6. iOS之FMDB 转载

      写的较好的博客:http://blog.csdn.net/xyz_lmn/article/details/9312837 http://www.cnblogs.com/wuhenke/archiv ...

  7. iOS UICollectionView基础

    转载自:http://www.cnblogs.com/wayne23/p/4013522.html  初始化部分: UICollectionViewFlowLayout *flowLayout= [[ ...

  8. sgu 101 无向图有双重边的欧拉路径

    #include <iostream> #include <cstring> #include <cstdlib> #include <cstdio> ...

  9. Unity手游之路&lt;七&gt;角色控制器

    我们要控制角色的移动,能够所有细节都由自己来实现.控制角色模型的移动,同一时候移动摄影机,改变视角.当然Unity也提供了一些组件,能够让我们做更少的工作,实现我们所期望的功能.今天我们就一起系统来学 ...

  10. 金蝶KIS 13.0专业版破解方法破解安装流程 金蝶KIS 13.0专业版安装流程

    金蝶KIS 13.0安装 1.先安装操作系统Windows server 2008 R2. 2.再安装SQL2008 R2. 3.再安装金蝶KIS 13.0专业版. 在安装时记住须要将系列号设置成为1 ...