嘿伙计们,我在为 .obj 模型解析器编写的一些代码时遇到问题。这是导致问题的代码:
std::istringstream iss(line.substr(1));
std::copy(
std::istream_iterator<float>(iss),
std::istream_iterator<float>(),
std::back_inserter<std::vector<float>>(model.chunks.back().vectices)
);
它基本上将一个字符串作为参数传递,如下所示:
v -5.000000 -1.000000 1.000000
然后从中获取子字符串,因此只剩下以下内容:
-5.000000 -1.000000 1.000000
最后我使用 std::copy 并从字符串中获取每组数字:
顶点[0] = -5.000000
顶点[1] = -1.000000
顶点[2] = 1.000000
无论如何,这里的主要问题是我从这行代码中得到一个错误:
std::back_inserter<std::vector<float>>(model.chunks.back().vectices));
它说“预期的令牌';' got float" 我的代码仍然可以完美地编译和运行。
尽管如果我用 std::string's 替换该代码中的浮点数,我就不会再收到错误了。
std::copy(
std::istream_iterator<std::string>(iss),
std::istream_iterator<std::string>(),
std::back_inserter<std::vector<std::string>>(model.chunks.back().vectices)
);
我正在使用 Qt Creator,所以这可能只是一个 IDE 错误吗?任何帮助将不胜感激!