Details
-
Bug
-
Status: Closed
-
Critical
-
Resolution: Fixed
-
4.1.3
-
None
-
All.
Description
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
Attachments
Attachments
Issue Links
- relates to
-
STDCXX-294 std::vector(iterator, size_type, value_type) corrupts data
-
- Closed
-