c++ iterate through a vector of strings

c++, vector, watcom

Solution

Add `iostream` header file and change `stdio` to `cstdio`.

#include <iostream>
#include <string>
#include <vector>
#include <cstdio>

using namespace std;

int main() 
{
    vector<string> data={"Hello World!","Goodbye World!"};
    for (vector<string>::iterator t=data.begin(); t!=data.end(); ++t) 
    {
        cout<<*t<<endl;
    }
    return 0;
}

Problem

So I recently discovered the use of map and vectors, however, I'm having trouble of trying to figure a way to loop through a vector containing strings. Here's what I've tried: ``` #include <string> #include <vector> #include <stdio> using namespace std; void main() { vector<string> data={"Hello World!","Goodbye World!"}; for (vector<string>::iterator t=data.begin(); t!=data.end(); ++t) { cout<<*t<<endl; } } ``` and when I try to compile it, I get this error: ``` cd C:\Users\Jason\Desktop\EXB\Win32 wmake -f C:\Users\Jason\Desktop\EXB\Win32\exbint.mk -h -e wpp386 ..\Source\exbint.cpp -i="C:\WATCOM/h;C:\WATCOM/h/nt" -w4 -e25 -zq -od -d2 -6r -bt=nt -fo=.obj -mf -xs -xr ..\Source\exbint.cpp(59): Error! E157: col(21) left expression must be integral ..\Source\exbint.cpp(59): Note! N717: col(21) left operand type is 'std::ostream watcall (lvalue)' ..\Source\exbint.cpp(59): Note! N718: col(21) right operand type is 'std::basic_string<char,std::char_traits<char>,std::allocator<char>> (lvalue)' Error(E42): Last command making (C:\Users\Jason\Desktop\EXB\Win32\exbint.obj) returned a bad status Error(E02): Make execution terminated Execution complete ``` I tried the same method using map and it worked. The only difference was I changed the cout line to: ``` cout<<t->first<<" => "<<t->last<<endl; ```

Original source