0

我试图将数字和字母列表读入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];

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

4

1 回答 1

2

根据您的for循环,我假设您说“数字”时,实际上是指“十进制数字”。

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

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

如果您真正的意思不是“十进制数字”,而是任意数字,那么您需要比 a 更复杂charvector. 正如评论中所建议的那样,Boost.Any是一种可能性。

于 2013-10-12T00:09:04.537 回答