标准::矢量混合数据类型

std::vector mixed data types

本文关键字:数据类型 混合 标准      更新时间:2023-10-16

我试图将数字和字母列表读入std::vector<char>。由于它产生了错误,我只尝试阅读数字:

#include <vector>
#include <iostream>
using namespace std;
int main(int argc, char const *argv[])
{
    vector<char> zahlen;
    for (int i = 0; i < 10; ++i)
    {
        zahlen.push_back(i);
    }
    for (int i = 0; i < zahlen.size(); ++i)
    {
        cout<<zahlen[i];
    }
    cout<<endl;
    return 0;
}

这会产生一些奇怪的输出。我做错了什么?如何在向量或其他容器中存储多种类型的数据?

编辑:

cout<<(int)zahlen[i];

这完成了显示内容的工作,但是如何识别不同类型的数据?

根据你的for循环,我会假设当你说"数字"时,你实际上指的是"十进制数字"。

您可以使用std::vector<char>来存储十进制数字和字母,但它们都将表示为 char 。您可以通过使用系统的字符编码来存储十进制数字来说明这一点。一个简单的方法:

    vector<char> zahlen;
    for (int i = 0; i < 10; ++i)
    {
        zahlen.push_back('0' + i);
    }

如果您真的不是"十进制数字",而是任意数字,那么您需要比vector char更复杂的东西.正如评论中所建议的,Boost.Any是可能的。