Today I program using STL vector,and find some characteristics of vector.
To initiate a vector by another vector after declaration, there are two ways.
1, vector<int> m;
vector<int> n;
m.assign(n.begin(),n.end());
2, m=vector<int>(n);
Do not push_back pointers to a vector. A pointer can not be pushed into vector properly, although I don't know the reason.
run the following code, and the result verifies the ambiguity caused by pushing-back pointer into vector!
#include <vector>
using namespace std;
struct comp
{
int a;
int*b;
};
void main()
{
int L=5,i;
vector<int> m,n;
vector<comp> dx;
comp xx;
for(i=0;i<5;++i)
{
m.push_back(i+1);
xx.a=i;
//xx.b=&m[i];
dx.push_back(xx);
dx[i].b=&m[i];
}
n=vector<int>(m);
for(i=0;i<L;++i)
printf("%d/t%d/n",m[i],*dx[i].b);
// getchar();
}
These are a few notes through learning and using STL vector in Visual C++ 6.0.