Cygwin vector problem

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Vish

    Cygwin vector problem

    I cannot compile a simple code as below using cygwin. I believe I am
    using latest version of g++(3.3.1) I get following error

    is_equal.cpp:9: 19: ccc.cpp: No such file or directory
    is_equal.cpp:11 : error: `vector' was not declared in this scope
    is_equal.cpp:11 : error: parse error before `>' token
    is_equal.cpp: In function `bool equal_vec(...)' :
    is_equal.cpp:12 : error: `a' undeclared (first use this function)
    is_equal.cpp:12 : error: (Each undeclared identifier is reported only
    once for
    each function it appears in.)
    is_equal.cpp:12 : error: `b' undeclared (first use this function)
    is_equal.cpp: In function `int main()':
    is_equal.cpp:23 : error: `vector' undeclared (first use this function)
    is_equal.cpp:23 : error: parse error before `>' token
    is_equal.cpp:25 : error: `cout' undeclared (first use this function)
    is_equal.cpp:26 : error: `cin' undeclared (first use this function)
    is_equal.cpp:36 : error: `v1' undeclared (first use this function)
    is_equal.cpp:46 : error: parse error before `>' token
    is_equal.cpp:57 : error: `v2' undeclared (first use this function)
    is_equal.cpp:74 :2: warning: no newline at end of file


    /*
    Vishal Pahuja
    Lab 9 part 3
    */

    #include <iostream>
    #include <vector>
    #include <stdexcept>


    bool equal_vec(vecto r<int> a, vector<int> b)
    { if (a.size() !=b.size()) return false;
    for (int i = 0;i<a.size();i+ +)
    {
    if (a[i] != b[i]) return false;
    }
    return true;
    }


    int main()

    { vector<int> v1;
    int v1size;
    cout << "\nHow many value you want to enter for vector v1?: \n";
    cin >>v1size;

    cout << "\nEnter values for vector v1: \n";
    int i,j;

    for (i = 0; i < v1size; i++)
    {
    cout << "Next: ";
    //cin >> v1[i];
    cin >> j;
    v1.push_back(j) ;
    }
    cout << "\nVector v1 :\n";
    for (i = 0; i < v1.size(); i++)
    {
    cout << v1[i]
    << "\n";
    }


    vector<int> v2;
    int v2size;
    cout << "\nHow many value you want to enter for vector v2?: \n";
    cin>>v2size;

    cout << "\nEnter values for vector v2: \n";
    for (i = 0; i < v2size; i++)
    {
    cout << "Next: ";
    //cin >> v2[i];
    cin >> j;
    v2.push_back(j) ;
    }

    cout << "\nVector v2 :\n";
    for (i= 0; i< v2.size(); i++)
    {
    cout << v2[i]
    << "\n";
    }

    bool isequal;
    isequal=equal_v ec(v1,v2);

    if (isequal) cout<< "The vectors are equal\n";
    else cout<< "The vectors are not equal\n";


    }
  • red floyd

    #2
    Re: Cygwin vector problem

    Vish wrote:[color=blue]
    > I cannot compile a simple code as below using cygwin. I believe I am
    > using latest version of g++(3.3.1) I get following error
    >
    > is_equal.cpp:9: 19: ccc.cpp: No such file or directory
    > is_equal.cpp:11 : error: `vector' was not declared in this scope
    > is_equal.cpp:11 : error: parse error before `>' token
    > is_equal.cpp: In function `bool equal_vec(...)' :
    > is_equal.cpp:12 : error: `a' undeclared (first use this function)
    > is_equal.cpp:12 : error: (Each undeclared identifier is reported only
    > once for
    > each function it appears in.)
    > is_equal.cpp:12 : error: `b' undeclared (first use this function)
    > is_equal.cpp: In function `int main()':
    > is_equal.cpp:23 : error: `vector' undeclared (first use this function)
    > is_equal.cpp:23 : error: parse error before `>' token
    > is_equal.cpp:25 : error: `cout' undeclared (first use this function)
    > is_equal.cpp:26 : error: `cin' undeclared (first use this function)
    > is_equal.cpp:36 : error: `v1' undeclared (first use this function)
    > is_equal.cpp:46 : error: parse error before `>' token
    > is_equal.cpp:57 : error: `v2' undeclared (first use this function)
    > is_equal.cpp:74 :2: warning: no newline at end of file
    >
    >
    > /*
    > Vishal Pahuja
    > Lab 9 part 3
    > */
    >
    > #include <iostream>
    > #include <vector>
    > #include <stdexcept>
    >
    >
    > bool equal_vec(vecto r<int> a, vector<int> b)
    > { if (a.size() !=b.size()) return false;
    > for (int i = 0;i<a.size();i+ +)
    > {
    > if (a[i] != b[i]) return false;
    > }
    > return true;
    > }
    >
    >
    > int main()
    >
    > { vector<int> v1;
    > int v1size;
    > cout << "\nHow many value you want to enter for vector v1?: \n";
    > cin >>v1size;
    >
    > cout << "\nEnter values for vector v1: \n";
    > int i,j;
    >
    > for (i = 0; i < v1size; i++)
    > {
    > cout << "Next: ";
    > //cin >> v1[i];
    > cin >> j;
    > v1.push_back(j) ;
    > }
    > cout << "\nVector v1 :\n";
    > for (i = 0; i < v1.size(); i++)
    > {
    > cout << v1[i]
    > << "\n";
    > }
    >
    >
    > vector<int> v2;
    > int v2size;
    > cout << "\nHow many value you want to enter for vector v2?: \n";
    > cin>>v2size;
    >
    > cout << "\nEnter values for vector v2: \n";
    > for (i = 0; i < v2size; i++)
    > {
    > cout << "Next: ";
    > //cin >> v2[i];
    > cin >> j;
    > v2.push_back(j) ;
    > }
    >
    > cout << "\nVector v2 :\n";
    > for (i= 0; i< v2.size(); i++)
    > {
    > cout << v2[i]
    > << "\n";
    > }
    >
    > bool isequal;
    > isequal=equal_v ec(v1,v2);
    >
    > if (isequal) cout<< "The vectors are equal\n";
    > else cout<< "The vectors are not equal\n";
    >
    >
    > }[/color]

    vector is in the std namespace (as in cout). Put a "using namespace std;" after the includes

    Comment

    • Xenos

      #3
      Re: Cygwin vector problem


      "Vish" <vishalpahuja@h otmail.com> wrote in message
      news:592c7c7f.0 312041202.2b9aa 961@posting.goo gle.com...[color=blue]
      > I cannot compile a simple code as below using cygwin. I believe I am
      > using latest version of g++(3.3.1) I get following error
      >
      > is_equal.cpp:9: 19: ccc.cpp: No such file or directory
      > is_equal.cpp:11 : error: `vector' was not declared in this scope
      > is_equal.cpp:11 : error: parse error before `>' token
      > is_equal.cpp: In function `bool equal_vec(...)' :
      > is_equal.cpp:12 : error: `a' undeclared (first use this function)
      > is_equal.cpp:12 : error: (Each undeclared identifier is reported only
      > once for
      > each function it appears in.)
      > is_equal.cpp:12 : error: `b' undeclared (first use this function)
      > is_equal.cpp: In function `int main()':
      > is_equal.cpp:23 : error: `vector' undeclared (first use this function)
      > is_equal.cpp:23 : error: parse error before `>' token
      > is_equal.cpp:25 : error: `cout' undeclared (first use this function)
      > is_equal.cpp:26 : error: `cin' undeclared (first use this function)
      > is_equal.cpp:36 : error: `v1' undeclared (first use this function)
      > is_equal.cpp:46 : error: parse error before `>' token
      > is_equal.cpp:57 : error: `v2' undeclared (first use this function)
      > is_equal.cpp:74 :2: warning: no newline at end of file
      >
      >
      > /*
      > Vishal Pahuja
      > Lab 9 part 3
      > */
      >
      > #include <iostream>
      > #include <vector>
      > #include <stdexcept>
      >
      >
      > bool equal_vec(vecto r<int> a, vector<int> b)
      > { if (a.size() !=b.size()) return false;
      > for (int i = 0;i<a.size();i+ +)
      > {
      > if (a[i] != b[i]) return false;
      > }
      > return true;
      > }
      >
      >
      > int main()
      >
      > { vector<int> v1;
      > int v1size;
      > cout << "\nHow many value you want to enter for vector v1?: \n";
      > cin >>v1size;
      >
      > cout << "\nEnter values for vector v1: \n";
      > int i,j;
      >
      > for (i = 0; i < v1size; i++)
      > {
      > cout << "Next: ";
      > //cin >> v1[i];
      > cin >> j;
      > v1.push_back(j) ;
      > }
      > cout << "\nVector v1 :\n";
      > for (i = 0; i < v1.size(); i++)
      > {
      > cout << v1[i]
      > << "\n";
      > }
      >
      >
      > vector<int> v2;
      > int v2size;
      > cout << "\nHow many value you want to enter for vector v2?: \n";
      > cin>>v2size;
      >
      > cout << "\nEnter values for vector v2: \n";
      > for (i = 0; i < v2size; i++)
      > {
      > cout << "Next: ";
      > //cin >> v2[i];
      > cin >> j;
      > v2.push_back(j) ;
      > }
      >
      > cout << "\nVector v2 :\n";
      > for (i= 0; i< v2.size(); i++)
      > {
      > cout << v2[i]
      > << "\n";
      > }
      >
      > bool isequal;
      > isequal=equal_v ec(v1,v2);
      >
      > if (isequal) cout<< "The vectors are equal\n";
      > else cout<< "The vectors are not equal\n";
      >
      >
      > }[/color]

      you need to qualify all declarations from the c++ stardard headers with
      "std::" or add the line "using namespace std;" before using them.


      Comment

      • Vish

        #4
        Re: Cygwin vector problem

        Wow. You guys rock....

        Thanks. using namespace was the trick. I wonder why we were not told to use
        it in out class. In class they always said, its your sweet will if you want
        to say using namespace std. Well, Now I know...

        Thanks again

        Comment

        • red floyd

          #5
          Re: Cygwin vector problem

          Vish wrote:[color=blue]
          > Wow. You guys rock....
          >
          > Thanks. using namespace was the trick. I wonder why we were not told to use
          > it in out class. In class they always said, its your sweet will if you want
          > to say using namespace std. Well, Now I know...
          >
          > Thanks again[/color]

          You shouldn't put a using directive in a HEADER file. In a source file, after
          all the includes, it shouldn't be a problem. Putting it in a header file can
          seriously confuse the compiler.


          Alternatively you could have said std::vector, std::cin, and std::cout

          Comment

          Working...