Cygwin vector problem

V

Vish

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 != b) 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;
cin >> j;
v1.push_back(j);
}
cout << "\nVector v1 :\n";
for (i = 0; i < v1.size(); i++)
{
cout << v1
<< "\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;
cin >> j;
v2.push_back(j);
}

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

bool isequal;
isequal=equal_vec(v1,v2);

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


}
 
X

Xenos

Vish said:
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 != b) 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;
cin >> j;
v1.push_back(j);
}
cout << "\nVector v1 :\n";
for (i = 0; i < v1.size(); i++)
{
cout << v1
<< "\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;
cin >> j;
v2.push_back(j);
}

cout << "\nVector v2 :\n";
for (i= 0; i< v2.size(); i++)
{
cout << v2
<< "\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.
 
R

red floyd

Vish said:
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 != b) 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;
cin >> j;
v1.push_back(j);
}
cout << "\nVector v1 :\n";
for (i = 0; i < v1.size(); i++)
{
cout << v1
<< "\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;
cin >> j;
v2.push_back(j);
}

cout << "\nVector v2 :\n";
for (i= 0; i< v2.size(); i++)
{
cout << v2
<< "\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
 
V

Vish

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
 
R

red floyd

Vish said:
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
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

Forum statistics

Threads
473,769
Messages
2,569,582
Members
45,057
Latest member
KetoBeezACVGummies

Latest Threads

Top