info-gplusplus
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Issue with stl vector use


From: postdt user
Subject: Issue with stl vector use
Date: Mon, 24 Aug 2009 15:23:12 -0400

Hi,
 
I have a C++ program which uses stl vector to implement a Stack,
a simple program for proof of concept purpose.
My environment is eclipse + cdt6 + cygwin+ gcc 4.3.2+windows xp
when I run it inside eclipse or in cygwin (all in windows xp), I got nothing on screen.
I mean  I can't even see the Starting the process: print out.
 
But when I run it inside vs.net 2008, it worked.
I also tried it on solaris with gcc 3.4.6, it worked too.
So I think it might be issue with setting up with cygwin, so I post it here.
 
Thanks for help.
 
Here's the code:
 
///// stack1.h /////

#include <vector>

#include <stdexcept>

template<class T>

class Stack

{

private:

std::vector<T> elems;

public:

 

void push(T const&);

void pop();

T top() const;

bool empty() const

{

return elems.empty();

}

Stack();

~Stack()

{

std::cout << "destructor called." << std::endl;

}

};

template<class T>

void Stack<T>::push(T const& elem)

{

std::cout << "push is called: " << std::endl;

elems.push_back(elem);

}

template<class T>

void Stack<T>::pop()

{

if (elems.empty())

{

throw std::out_of_range("Stack<>::pop(): empty stack");

}

elems.pop_back();

}

template<class T>

T Stack<T>::top() const

{

if (elems.empty())

{

std::cout << "empty stack" << std::endl;

throw std::out_of_range("Stack<>::top(): empty stack");

}

return elems.back();

}

 

template<class T>

Stack<T>::Stack()

{

std::cout << "Default constructor called.." << std::endl;

}
 
 
////// stack1test.cpp ////////
 

#include <iostream>

#include <string>

#include <cstdlib>

#include "stack1.h"

int main()

{

try

{

std::cout << "Starting the process: " << std::endl;

Stack<int> intStack;

// Stack<std::string> stringStack;

std::cout << "Is empty: " << intStack.empty() << std::endl;

intStack.push(7);

int x = intStack.top();

std::cout << x << std::endl;

}

catch(std::exception const& ex)

{

std::cout << "Exception: " << ex.what() << std::endl;

return EXIT_FAILURE;

}

}
 
//// end of program ///////////
 


HotmailĀ® is up to 70% faster. Now good news travels really fast. Try it now.

reply via email to

[Prev in Thread] Current Thread [Next in Thread]