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.