incubator-stdcxx-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Craig Chariton <chari...@roguewave.com>
Subject Problem with vectors and insert
Date Fri, 12 May 2006 20:56:25 GMT
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

 

It appears to be consistent across platforms and compilers.

 

I have not been able to find any references to such a problem with vectors
on the lists or in JIRA.  Has this problem been recognized and solved?

 

Craig Chariton



 


Mime
  • Unnamed multipart/alternative (inline, None, 0 bytes)
View raw message