stdcxx-dev mailing list archives

Site index · List index
Message view
Top
From "Craig Chariton (JIRA)" <j...@apache.org>
Subject [jira] Created: (STDCXX-179) Inserting a Vector into a Vector Corrupts Vector Data
Date Fri, 12 May 2006 22:47:08 GMT
```Inserting a Vector into a Vector Corrupts Vector Data
-----------------------------------------------------

Key: STDCXX-179
URL: http://issues.apache.org/jira/browse/STDCXX-179
Project: C++ Standard Library
Type: Bug

Components: 23. Containers
Versions: 4.1.3
Environment: All operating systems
Reporter: Craig Chariton
Priority: Critical

There is an interesting problem that occurs with vectors.  Here is the sample code:

#include <iostream>   // for cout, endl
#include <vector>     // for vector

int main ()
{
std::vector<int> a;
a.push_back(1);
a.push_back(2);
a.push_back(3);
a.push_back(4);

std::vector<int> b;
b.push_back(0);

a.insert(a.begin(), b.begin(), b.end());

for( std::vector<int>::iterator i = a.begin(); i != a.end(); ++i)
std::cout << (*i) << ",";
std::cout << std::endl;

return 0;
}

The output is 0,2,3,1,2, instead of 0,1,2,3,4, .

I tried some other combinations as follows:
a = 1, b = 0  -  works, get 0,1
a = 1,2, b = 0  -  works, get 0,1,2
a = 1,2,3, b = 0  -  fails, get 0,2,1,2
a = 1,2,3, b = 0, 5  -  fails, get 0,5,3,2,3
a = 1,2, b = 0,5  -  works, get 0,5,1,2
a = 1,2,3,4, b = 0,5  -  works, get 0,5,1,2,3,4
a = 1,2,3,4,5, b = 0,5  -  fails, get 0,5,3,1,2,3,5

--
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators: