-6

I have the following code excerpt.

#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <math.h>

#include <fstream>
#include <string>
#include <array>
using namespace std;

int solver(int T)
{
    /* read IA */

    ifstream inputFile("IA [0;1.3077].txt");

    vector<int> ia;

    if (inputFile) {
        int num;
        while ( inputFile >> num) {
            ia.push_back(num);
        }
    }

}

int main (void) {
    solver(360);
}

But it gives me this error:

 error: implicit instantiation of undefined template
      'std::__1::vector<int, std::__1::allocator<int> >'
    vector<int> ia;
                ^
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/../include/c++/v1/iosfwd:200:29: note: 
      template is declared here
class _LIBCPP_TYPE_VIS_ONLY vector;

The goal is to read a txt file with integers per line without knowing how many lines there are in advance. I'm choosing a vector to hold the data because I don't want to initialize an integer array with a fixed size. Does anybody have any suggestions?

Also, I understand that the variable T is unused - I will use it after the .txt file is loaded.

tryingtosolve
  • 763
  • 5
  • 20

1 Answers1

2

You need to:

 #include <vector>

You must alway include directly all the headers for the types you use.