在我的 xml 文件中,我有如下编写的整数数组:“1 10 -5 150 35”,我正在使用 pugixml 来解析它。
我知道 pugixml 提供了诸如 as_bool 或 as_int 之类的方法,但它是否提供了一种将 int 数组的字符串表示形式转换为 c++ 对象的简单方法,还是我必须自己解析和分离字符串?如果是这样,关于如何做到这一点的任何建议?
一种可能性是使用std::istringstream
. 例子:
#include <iostream>
#include <string>
#include <sstream>
#include <vector>
#include <algorithm>
#include <iterator>
int main()
{
{
std::istringstream in(std::string("1 10 -5 150 35"));
std::vector<int> my_ints;
std::copy(std::istream_iterator<int>(in),
std::istream_iterator<int>(),
std::back_inserter(my_ints));
}
// Or:
{
int i;
std::istringstream in(std::string("1 10 -5 150 35"));
std::vector<int> my_ints;
while (in >> i) my_ints.push_back(i);
}
return 0;
}