help-gplusplus
[Top][All Lists]
Advanced

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

stl vector issue


From: postdt
Subject: stl vector issue
Date: Tue, 25 Aug 2009 03:49:58 +0000 (UTC)
User-agent: Loom/3.14 (http://gmane.org/)

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 ///////////






reply via email to

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