Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Strange behaviour

0 views
Skip to first unread message

Ioannis Vranos

unread,
Oct 2, 2008, 1:00:41 PM10/2/08
to
The code:

#include <iostream>
#include <ctime>
#include <vector>
#include <cstddef>


struct SomeClass
{
typedef std::vector<int> TypeVector;

TypeVector vec;

enum { VectorSize= 10 };

public:

SomeClass();
};

SomeClass::SomeClass():vec(VectorSize)
{
using namespace std;

srand(0);

for(TypeVector::size_type i= 0; i< vec.size(); ++i)
{
vec[i]= rand();

cout<<vec[i]<<"\t";
}

cout<<"\n\n";
}

int main()
{
using namespace std;

const size_t SIZE=10;

typedef vector<SomeClass> Vector;

cout<< "\nCreating vector with "<< SIZE<< " SomeClass objects..."<<
endl;
Vector vec(SIZE);

}

in my system produces:

john@john-desktop:~/Projects/Other/anjuta1/src$ ./foobar_cpp

Creating vector with 10 SomeClass objects...
1804289383 846930886 1681692777 1714636915
1957747793 424238335 719885386 1649760492
596516649 1189641421

john@john-desktop:~/Projects/Other/anjuta1/src$


(10 values) instead of 100 values. Is it a compiler defect, or am I
missing something?

Ioannis Vranos

unread,
Oct 2, 2008, 1:05:59 PM10/2/08
to
The code:

#include <iostream>
#include <ctime>
#include <vector>
#include <cstddef>


struct SomeClass
{
typedef std::vector<int> TypeVector;

TypeVector vec;

enum { VectorSize= 10 };

public:

SomeClass();
};

SomeClass::SomeClass():vec(VectorSize)
{
using namespace std;

srand(time(0));

for(TypeVector::size_type i= 0; i< vec.size(); ++i)
{
vec[i]= rand();

cout<<vec[i]<<" ";
}

cout<<"\n\n";
}

int main()
{
using namespace std;

const size_t SIZE=10;

typedef vector<SomeClass> Vector;

cout<< "\nCreating vector with "<< SIZE<< " SomeClass objects..."<<
endl;
Vector vec(SIZE);

}


in my system produces:


john@john-desktop:~/Projects/Other/anjuta1/src$ ./foobar_cpp

Creating vector with 10 SomeClass objects...

721719660 2021996343 352419231 1918327853 2096709369 504143813
1554377841 1136725920 697167326 165934869

Jeff Schwab

unread,
Oct 2, 2008, 1:12:07 PM10/2/08
to

Only one instance of SomeClass is default-constructed. Most of the
vector elements are copy-constructed.

0 new messages