0

我正在使用以下指南http://rodrigo-silveira.com/opengl-tutorial-parsing-obj-file-blender/#.UTRmkvUudqI

因为我试图在 webgl 中加载一个 obj 文件。在我的 RokkoParse.cpp 文件中,我使用“向量”。但是我的编译器说“std::vector is missing”我试图在网上搜索这个错误,但我找不到任何好的东西。有人可以帮我解决我的问题吗?

RokkoParses.h

    #pragma once
#include <vector>
#include <string>
#include <iostream>
#include <string>

using std::string;

class RokkoParser
{
public:

public:
   static void objToTxt(const string aInFilename, 
                        const string aOutFilename, 
                        bool aVerbose = false);
   static std::vector explode(string aStr, char aDelim);
};

RokkoParser.cpp

    #include "StdAfx.h"
#include "RokkoParser.h"
#include <cstdio> // instead of <stdio.h>
// #include <conio.h> -- do not use
#include <cstring> // instead of <string.h>
#include "stdafx.h"
#include <iostream>
#include "stdafx.h"
#include<iostream>
#include<conio.h>
#include <string>
#include <iostream>
#include <vector>
#include <string>
#include <iostream>
#include <string>

using namespace std;


vector RokkoParser::explode(string aStr, char aDelim)
{
  vector res;
  string str = aStr.substr(0, aStr.find(aDelim));

  while(str.size() < aStr.size())
  {
    res.push_back(str);
    aStr = aStr.substr(aStr.find(aDelim) + 1);
    str = aStr.substr(0, aStr.find(aDelim));
  }

  res.push_back(str);

  return res;
}

在这两个文件中,他们都说同样的错误

谢谢!

4

2 回答 2

9

vector是一个类模板。当你声明一个向量时,你必须指定向量的元素应该有什么类型:“什么的向量”?

例如:

std::vector<int> vi;         // This declares a vector of integers
std::vector<std::string> vs; // This declares a vector of strings
// ...

在您的代码中,您使用std::vector没有任何模板参数。这就是编译器抱怨的原因。

于 2013-03-04T10:12:29.097 回答
2

我很确定您没有给我们完整的错误消息,它实际上说“std::vector 缺少类型参数”或类似的东西。

这样做的原因是这vector是一个类模板,你必须告诉它你希望它持有什么样的对象,例如vector<int>vector<string>

于 2013-03-04T10:12:30.017 回答