1.string str[]={"Alex","John","Robert"}; // creates vector with 10 elements, // and assign value 0 for each vector<int> v3(10,0); vector<string> v4(str+0,str+3); vector<string>::iterator sIt = v4.begin(); while ( sIt != v4.end() ) cout << *sIt++ << " "; cout << endl; // copy constructor vector<string> v5(v4); for ( int i=0; i<3; i++) cout << v5[i] << " "; cout << endl; return 0; } OUTPUT: // Alex John Robert // Alex John Robert 1、string s1( "Mississippi" ); string s3; // 拷贝s1 的前4 个字符 s3.assign( s1, 0, 4 ); s3 现在的值为“Miss”。 2、 string str1, str2 = "War and Peace"; str1.assign( str2, 4, 3 ); cout << str1 << endl; 显示 and #include <iostream> #include <vector> using namespace std; int main () { vector<int> v(3,0); v[0] = 100; v.at(1) = 200; for ( int i=0; i<3; i++ ) cout << v.at(i) << " "; cout << endl; return 0; } OUTPUT: // 100 200 0 #include <iostream> #include <vector> #include <iterator> #include <numeric> //iota using namespace std; int main () { vector<int> v(5); iota(v.begin(),v.end(),1);//stl自增函数 vector<int>::iterator It = v.begin(); while ( It != v.end() ) cout << *It++ << " "; cout << endl; // third element of the vector It = v.begin()+2; cout << *It << endl; return 0; } OUTPUT: // 1 2 3 4 5 // 3 1. #include <iostream> #include <vector> using namespace std; int main () { vector<int> v(10); cout << "Size of v = " << v.size() << endl; cout << "Capacity of v = " << v.capacity() << endl; v.resize(100); cout << "After resizing:" << endl; cout << "Size of v = " << v.size() << endl; cout << "Capacity of v = " << v.capacity() << endl; return 0; } OUTPUT: // Size of v = 10 // Capacity of v = 10 // After resizing: // Size of v = 100 // Capacity of v = 100 2.fill(v.begin(),v.end(),5); v.clear();//清除vector内容 3.#include <iostream> #include <vector> using namespace std; int main () { vector<int> v; cout << "Vector is "; v.empty() ? cout << "" : cout << "not "; cout << "empty" << endl; //如c++中的vector头文件里面就有这个push_back函数,在vector类中作用为在vector尾 部加入一个数据。 v.push_back(100); cout << "Vector is "; v.empty() ? cout << "" : cout << "not "; cout << "empty" << endl; return 0; } // Vector is empty // Vector is not empty 4. #include <iostream> #include <vector> #include <iterator> #include <numeric> using namespace std; int main () { vector<int> v(5); iota(v.begin(),v.end(),1); vector<int>::iterator It = v.begin(); while ( It != v.end() ) cout << *It++ << " "; cout << endl; // last element of the vector It = v.end()-1; cout << *It << endl; return 0; } OUTPUT: // 1 2 3 4 5 // 5 5. #include <vector> #include <iostream> using namespace std; int main(int argc, char* argv[]) { vector<int> vect; vect.push_back(1); vect.push_back(2); vect.push_back(3); vect.push_back(4); vect.resize(100); //新的空间不覆盖原有四个元素占有的空间,现在size和 capacity都是100 cout<<vect.size()<<endl; int i = 0; for (i = 0; i < 104; i++) { cout<<vect[i]<<endl; } return 0; } #include <vector> #include <iostream> using namespace std; int main(int argc, char* argv[]) { vector<int> vect; vect.resize(100); //分配100个空间 vect.push_back(1); vect.push_back(2); vect.push_back(3); vect.push_back(4); cout<<vect.size()<<endl; //现在size和capacity都是104 int i = 0; for (i = 0; i < 104; i++) { cout<<vect[i]<<endl; } return 0; } 6. #include <iostream> #include <vector> using namespace std; int main () { vector<int> v(10); cout << "Size of v = " << v.size() << endl; cout << "Max_size of v = " << v.max_size() << endl; return 0; } OUTPUT: // Size of v = 10 // Max_size of v = 1073741823 7.pop_back() 删除最后一个元素 template <class T> class Print { public: void operator () (T& t) { cout << t << " "; } }; //============================= int main () { vector<int> v; Print<int> print; for ( int i=0; i<5; i++ ) v.push_back(i+1); while ( !v.empty() ) { for_each(v.begin(),v.end(),print); cout << endl; v.pop_back(); } return 0; } OUTPUT: // 1 2 3 4 5 // 1 2 3 4 // 1 2 3 // 1 2 // 1 8. #include <iostream> #include <vector> using namespace std; int main () { vector<int> v(5,0); // 5 elements, each - value 0 /*------------------------------------------------*/ cout << "Size of v = " << v.size() << endl; cout << "Capacity v = " << v.capacity() << endl; cout << "Value of each element is - "; for ( int i = 0; i < v.size(); i++ ) cout << v[i] << " "; cout << endl; v[0] = 5; // new value for first element v[1] = 8; v.push_back(3); // creates new (6th) element of vector, v.push_back(7); // automatically increases size cout << endl; // capacity of vector v cout << "Size of v = " << v.size() << endl; cout << "Capacity v = " << v.capacity() << endl; cout << "Value of each element is - "; for ( int i = 0; i < v.size(); i++ ) cout << v[i] << " "; cout << endl << endl; v.reserve(100); // increase capacity to 100 cout << "Size of v1_int = " << v.size() << endl; cout << "Capacity v1_int = " << v.capacity() << endl; int size = sizeof(v); // how big is vector itself cout << "sizeof v = " << size << endl; return 0; } // Size of v = 5 // Capacity v = 5//返回当前vector在重新进行内存分配以前所能容纳的元素数量。 // Value of each element is - 0 0 0 0 0 // // Size of v = 7 // Capacity v = 10 // Value of each element is - 5 8 0 0 0 3 7 // // Size of v = 7 // Capacity v = 100 // sizeof v = 12 9. #include <iostream> #include <vector> #include <algorithm> #include <iterator> using namespace std; int main () { vector<int> v(5); for ( int i=0; i<5; i++ ) v[i] = i*2; copy(v.begin(),v.end(), ostream_iterator<int>(cout," ")); cout << endl; v.resize(7,100); copy(v.begin(),v.end(), ostream_iterator<int>(cout," ")); cout << endl; v.resize(4); copy(v.begin(),v.end(), ostream_iterator<int>(cout," ")); cout << endl; return 0; } OUTPUT: // 0 2 4 6 8 // 0 2 4 6 8 100 100 // 0 2 4 6 10.