21xrx.com
2024-12-22 17:04:54 Sunday
登录
文章检索 我的文章 写文章
如何在C++ vector中存储不同类型的数据
2023-07-05 16:42:38 深夜i     --     --
C++ vector 存储 不同类型 数据

在C++中,vector是一个非常有用的数据结构,它可以存储多个类型相同的数据,例如整数或浮点数。但是,有时候我们需要存储不同类型的数据,例如整数、浮点数和字符串。这时候,我们该如何在C++ vector中存储不同类型的数据呢?

其实,C++中有多种方法可以实现这个目标。下面就介绍其中两种常见的方法。

方法一:创建一个结构体

我们可以创建一个结构体,将不同类型的数据存储在结构体中,然后将该结构体存储在vector中。下面是一个示例:


struct myStruct

  int i;

  double d;

  string s;

;

vector<myStruct> v;

myStruct obj = 1;

v.push_back(obj);

在上面的示例中,我们创建了一个名为myStruct的结构体,然后将不同类型的数据存储在该结构体的变量中。接着,我们创建了一个vector ,并将存储了不同类型数据的结构体对象obj添加到了该vector中。

方法二:使用C++11中的“任意类型”模板

C++11中引入了“任意类型”模板(即std::any),它可以存储任意类型的数据。使用该模板,我们可以在C++ vector中存储不同类型的数据。下面是一个示例:


vector<any> v;

v.push_back(1);

v.push_back(2.5);

v.push_back("hello");

for (auto& element : v) {

  if (element.type() == typeid(int)) {

    cout << "int: " << any_cast<int>(element) << endl;

  } else if (element.type() == typeid(double)) {

    cout << "double: " << any_cast<double>(element) << endl;

  } else if (element.type() == typeid(string)) {

    cout << "string: " << any_cast<string>(element) << endl;

  }

}

在上面的示例中,我们创建了一个vector ,并向该vector中添加了不同类型的数据。然后,我们使用循环遍历vector中的元素,并根据元素的类型进行不同的操作。

总结:

以上就是在C++ vector中存储不同类型的数据的两种方法。第一种方法是使用结构体,而第二种方法是使用C++11中的“任意类型”模板。需要根据具体的场景选择合适的方法。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复