Vector:类模板的参数列表:“std :: vector is missing”

时间:2013-03-04 10:09:59

标签: c++

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

因为我正在尝试在webgl中加载obj文件。 在我的RokkoParse.cpp文件中,我使用'vector'。 但我的编译器说“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;
}

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

谢谢!

2 个答案:

答案 0 :(得分:3)

vector是一个模板。声明向量时,必须指定向量元素应具有的类型:“ 的向量

例如:

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

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

答案 1 :(得分:2)

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

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