By using this site, you agree to our updated Privacy Policy and our Terms of Use. Manage your Cookies Settings.
446,194 Members | 817 Online
Bytes IT Community
+ Ask a Question
Need help? Post your question and get tips & solutions from a community of 446,194 IT Pros & Developers. It's quick & easy.

Cygwin vector problem

P: n/a
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(vector<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_vec(v1,v2);

if (isequal) cout<< "The vectors are equal\n";
else cout<< "The vectors are not equal\n";
}
Jul 22 '05 #1
Share this Question
Share on Google+
4 Replies


P: n/a
Vish wrote:
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(vector<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_vec(v1,v2);

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


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

Jul 22 '05 #2

P: n/a

"Vish" <vi**********@hotmail.com> wrote in message
news:59**************************@posting.google.c om...
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(vector<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_vec(v1,v2);

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


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

P: n/a
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
Jul 22 '05 #4

P: n/a
Vish wrote:
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


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

Jul 22 '05 #5

This discussion thread is closed

Replies have been disabled for this discussion.