一般我们使用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. HDU-4608 I-number 枚举

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=4608 直接暴力枚举,没什么好说的.... //STATUS:C++_AC_765MS_740KB #i ...

  2. Django中的Model(操作表)

    Model 操作表 一.基本操作 # 增 models.Tb1.objects.create(c1='xx', c2='oo') #增加一条数据,可以接受字典类型数据 **kwargs obj = m ...

  3. A Tour of Go Exercise: Fibonacci closure

    Let's have some fun with functions. Implement a fibonacci function that returns a function (a closur ...

  4. .Net 项目常见疑难杂症

    1.A项目引用 B项目 B项目引用C.dll 同时 A也必须引用 C.dll 则 A中引用的C的版本 必须和 B中引用C的版本相同 否则就会出现下面这类问题:解决办法 :同步A B项目中引用C的版本一 ...

  5. mysql之存储引擎

    1.存储引擎概念 打比方说:一部电影有mp4,wmv,avi,flv...等格式.同样的一部电影在硬盘上有不同的存储格式,所占的空间与清晰程度也各不一样. 那么我们表里的数据存储在硬盘上,是如何存储的 ...

  6. Css3 display用法

    display 属性规定元素应该生成的框的类型. display:none   此元素不会被显示 display:block   此元素将显示为块级元素,此元素前后会带有换行符 display:inl ...

  7. iOS开发笔记系列-基础1(数据类型与表达式)

    学习iOS开发快两年了,去年完成MagViewer之后就因为公司的其他业务繁重,除了维护这个应用之外,只是断断续续地自己做一些实验开发,没有再发布新的应用,这里想整理一下学习过程中的笔记,以便加深印象 ...

  8. Codeforces Round #321 (Div. 2) B. Kefa and Company 二分

    B. Kefa and Company Time Limit: 1 Sec Memory Limit: 256 MB 题目连接 http://codeforces.com/contest/580/pr ...

  9. ORM之二:核心接口与扩展操作

    一.数据库提供者接口 /// <summary> /// 数据库提供者 /// </summary> public interface IDbProvider : IDispo ...

  10. Hive权限介绍

    一.开启权限 眼下hive支持简单的权限管理,默认情况下是不开启.这样全部的用户都具有同样的权限.同一时候也是超级管理员.也就对hive中的全部表都有查看和修改的权利,这样是不符合一般数据仓库的安全原 ...