如何声明可以容纳两个不同数据类型的向量?初始化import { Crashlytics } from '@ionic-native/fabric/ngx';
给了我很多错误。
答案 0 :(得分:9)
您可以拥有:
vector< pair<int, string> >
始终为每个向量成员存储一个int和一个字符串,请参见std::pair
vector< variant<int, string> >
,这是一个标记的变体,它为每个向量元素存储一个int或一个字符串,但不能为空(尽管您可以在列表中放入第三个类型来表示空),请参见std::variant
vector< any >
,请参阅std::any
。像往常一样,可能有更好的方法来解决您要解决的任何问题。
答案 1 :(得分:3)
STL容器(包括向量)都保存单个类型的元素的集合。 vector<int>
持有int
,vector<string>
持有string
。
您可以声明自己的结构,其中包含int
和string
,并制作其中的vector
:
struct Foo { int i; string s; };
vector<Foo> v;
或使用std::pair
:vector<pair<int, string> >
但是您不能拥有一个向量,其中包含字符串和整数的随机混合。
答案 2 :(得分:2)
使用std::tuple。
vector<tuple<int,string>>
答案 3 :(得分:0)
使用std :: tuple
#include <iostream>
#include<vector>
#include<tuple>
using namespace std;
int main()
{
vector<tuple<int,string>> V ;
V.push_back(make_pair(1,"usingtuple"));
for(auto a : V)
{
cout<<get<0>(a)<<" "<<get<1>(a);
}
return 0;
}