我试图将数字和字母列表读入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];
这完成了显示内容的工作,但如何识别不同类型的数据呢?
答案 0 :(得分:2)
根据你的for
循环,我会假设当你说“数字”时,你实际上是指“十进制数字”。
您可以使用std::vector<char>
存储十进制数字和字母,但它们都将表示为char
。您可以使用系统的字符编码来存储小数位数。一个简单的方法:
vector<char> zahlen;
for (int i = 0; i < 10; ++i)
{
zahlen.push_back('0' + i);
}
如果不是“十进制数字”而是真正意味着任意数字,那么对于char
,您需要比vector
更复杂的内容。正如评论中所建议的,Boost.Any
是可能的。