C++/Vector/vector insert

Материал из C\C++ эксперт
Перейти к: навигация, поиск

Appending values to Vector Containers after sorting

<source lang="cpp">

  1. include <algorithm>
  2. include <vector>
  3. include <iostream>

using namespace std; template <class T> void print(T& c){

  for( typename T::iterator i = c.begin(); i != c.end(); i++ ){
     std::cout << *i << endl;
  }

} int main( ){

  const char* names1[] = { "A", "B", "C" };
  const char* names2[] = { "D", "E", "F", "G" };
  vector<string> squad1( names1,names1 + sizeof( names1 ) / sizeof( names1[0] ) );
  vector<string> squad2( names2,names2 + sizeof( names2 ) / sizeof( names2[0] ) ); 
  sort( squad1.begin(), squad1.end() );
  
  print( squad1);
  sort( squad2.begin(), squad2.end() );
  print( squad2);
  squad1.insert( squad1.end(), squad2.begin(), squad2.end() );
  print( squad1); 
  sort( squad1.begin(), squad1.end() );
  print( squad1);

}


 </source>


Combine insert and end to add elements to the end of vector

<source lang="cpp">

  1. include <iostream>
  2. include <cassert>
  3. include <algorithm>
  4. include <string>
  5. include <list>
  6. include <deque>
  7. include <vector>

using namespace std; int main() {

 vector<string> vec;
 vec.insert(vec.end(), "AAA");
 vec.insert(vec.end(), "BBBB");
 vec.insert(vec.end(), "CCCCC");
 vector<string>::iterator pos;
 for (pos=vec.begin(); pos!=vec.end(); ++pos) {
       cout << *pos << " ";
 }
 return 0;

} /* AAA BBBB CCCCC

*/        
   
   
 </source>


Create and initialize vector with float number array

<source lang="cpp">

  1. include <algorithm>
  2. include <cmath>
  3. include <functional>
  4. include <iostream>
  5. include <list>
  6. include <numeric>
  7. include <vector>

using namespace std; template <class T> void print(T& c){

  for( typename T::iterator i = c.begin(); i != c.end(); i++ ){
     std::cout << *i << endl;
  }

} int main( ){

  const float a[] = { 1, 1.3, 1.5, 0.9, 0.1, 0.2};
  vector<float> data( a,a + sizeof( a ) / sizeof( a[0] ) );
  cout << data.size() << " ELEMENTS\n";
  print( data  );

}


 </source>


Insert 10 duplicate value to vector

<source lang="cpp">

  1. include <iostream>
  2. include <vector>

using namespace std; int main() {

 vector<char> v(10);
 vector<char> v2;
 char str[] = "<Vector>";
 unsigned int i;
 for(i=0; i<10; i++) 
    v[i] = i + "a";
 for(i=0; str[i]; i++) 
    v2.push_back(str[i]);
 
 cout << "Original contents of v:\n";
 for(i=0; i<v.size(); i++) 
     cout << v[i] << " ";
 cout << "\n\n";
 vector<char>::iterator p = v.begin();
 p += 2; // point to 3rd element
 v.insert(p, 10, "X");
 // display contents after insertion
 cout << "Size after inserting X"s = " << v.size() << endl;
 cout << "Contents after insert:\n";
 for(i=0; i<v.size(); i++) cout << v[i] << " ";
 cout << "\n\n";
 return 0;

} /* Original contents of v: a b c d e f g h i j Size after inserting X"s = 20 Contents after insert: a b X X X X X X X X X X c d e f g h i j

*/        
   
   
 </source>


Insert characters into vector. An iterator to the inserted object is returned

<source lang="cpp">

  1. include <iostream>
  2. include <vector>

using namespace std; void show(const char *msg, vector<char> vect); int main() {

 vector<char> v;
 vector<char>::iterator itr;
 itr = v.begin();
 itr = v.insert(itr, "A");
 itr = v.insert(itr, "B");
 v.insert(itr, "C");
 return 0;

} void show(const char *msg, vector<char> vect) {

 vector<char>::iterator itr;
 cout << msg << endl;
 for(itr=vect.begin(); itr != vect.end(); ++itr)
   cout << *itr << endl;

}


 </source>


Insert element at specific position

<source lang="cpp">

  1. include <vector>
  2. include <algorithm>
  3. include <iterator>
  4. include <iostream>

using namespace std; void printVector(const vector<int>& v){

 copy(v.begin(), v.end(), ostream_iterator<int>(cout, " "));
 cout << endl;

} int main(int argc, char** argv){

 vector<int> v1, v2;
 int i;
 v1.push_back(1);
 v1.push_back(2);
 v1.push_back(3);
 v1.push_back(5);
 // Insert it in the correct place
 v1.insert(v1.begin() + 3, 4);
 printVector(v1);
 return (0);

}


 </source>


Insert element by index

<source lang="cpp">

  1. include <iostream>

using std::cout; using std::endl;

  1. include <vector> // vector class-template definition
  2. include <algorithm> // copy algorithm
  3. include <iterator> // ostream_iterator iterator
  4. include <stdexcept> // out_of_range exception

int main() {

  int array[ 6 ] = { 1, 2, 3, 4, 5, 6 };
  std::vector< int > integers( array, array + 6 );
  std::ostream_iterator< int > output( cout, " " );
  integers.push_back( 2 );
  integers.push_back( 3 );
  integers.push_back( 4 );
  cout << "Vector integers contains: ";
  std::copy( integers.begin(), integers.end(), output );
  // insert 22 as 2nd element
  integers.insert( integers.begin() + 1, 22 );
  cout << "\n\nVector integers contains: ";
  std::copy( integers.begin(), integers.end(), output );
  return 0;

} /* Vector integers contains: 1 2 3 4 5 6 2 3 4 Vector integers contains: 1 22 2 3 4 5 6 2 3 4

*/        
   
   
 </source>


Insert elements from array

<source lang="cpp">

  1. include <iostream>

using std::cout; using std::endl;

  1. include <vector> // vector class-template definition
  2. include <algorithm> // copy algorithm
  3. include <iterator> // ostream_iterator iterator
  4. include <stdexcept> // out_of_range exception

int main() {

  int array[ 6 ] = { 1, 2, 3, 4, 5, 6 };
  std::vector< int > integers( array, array + 6 );
  std::ostream_iterator< int > output( cout, " " );
  integers.push_back( 2 );
  integers.push_back( 3 );
  integers.push_back( 4 );
  cout << "Vector integers contains: ";
  std::copy( integers.begin(), integers.end(), output );
  // insert elements from array
  integers.insert( integers.begin(), array, array + 6 );
  cout << "\n\nContents of vector integers before clear: ";
  std::copy( integers.begin(), integers.end(), output );
  return 0;

} /* Vector integers contains: 1 2 3 4 5 6 2 3 4 Contents of vector integers before clear: 1 2 3 4 5 6 1 2 3 4 5 6 2 3 4

*/        
   
   
 </source>


Insert one vector to another vector

<source lang="cpp">


  1. include <iostream>
  2. include <vector>

using namespace std; int main() {

 vector<char> v(10);
 vector<char> v2;
 char str[] = "<Vector>";
 unsigned int i;
 for(i=0; i<10; i++)
    v[i] = i + "a";
 for(i=0; str[i]; i++)
    v2.push_back(str[i]);
 cout << "Original contents of v:\n";
 for(i=0; i<v.size(); i++)
     cout << v[i] << " ";
 cout << "\n\n";
 vector<char>::iterator p = v.begin();
 p += 2; // point to 3rd element
 v.insert(p, 10, "X");
 // display contents after insertion
 cout << "Size after inserting X"s = " << v.size() << endl;
 cout << "Contents after insert:\n";
 for(i=0; i<v.size(); i++) cout << v[i] << " ";
 cout << "\n\n";
 // Insert v2 into v
 v.insert(p, v2.begin(), v2.end());
 cout << "Size after v2"s insertion = ";
 cout << v.size() << endl;
 cout << "Contents after insert:\n";
 for(i=0; i<v.size(); i++) cout << v[i] << " ";
 cout << endl;
 return 0;

} /* Original contents of v: a b c d e f g h i j Size after inserting X"s = 20 Contents after insert: a b X X X X X X X X X X c d e f g h i j

*/        
   
   
 </source>


Inserts an element into a vector at given position

<source lang="cpp">

  1. include <iostream>
  2. include <string>
  3. include <vector>

using namespace std; void insert(vector<string>& v, int pos, string s) {

  int last = v.size() - 1; 
  v.push_back(v[last]);
  for (int i = last; i > pos; i--)
     v[i] = v[i - 1];
  v[pos] = s;

} void print(vector<string> v) {

  for (int i = 0; i < v.size(); i++)
     cout << "[" << i << "] " << v[i] << "\n";

} int main() {

  vector<string> staff(5);
  staff[0] = "A";
  staff[1] = "B";
  staff[2] = "C";
  staff[3] = "D";
  staff[4] = "E";
  print(staff);
  int pos;
  cout << "Insert before which element? ";
  cin >> pos;
  insert(staff, pos, "New, Nina");
  print(staff);
  return 0;

}


 </source>