#if 0
已知类A,分别定义元素为A,A*的向量类,增加对应的向量元素,并在屏幕上重新显示对应向量的值,即显示A中成员变量值n
#endif
#include <iostream>
#include <vector>
class A
{
public :
int n;
public :
A(int n)
{
this->n=n;
}
};
int main(int argc,char *argv[])
{
std::cout << "-----A的向量操作-----" << std::endl;
std::vector<A>cla_vec;
A a1(1);
A a2(2);
A a3(3);
cla_vec.push_back(a1);
cla_vec.push_back(a2);
cla_vec.push_back(a3);
int nSize=cla_vec.size();
std::cout << "通过数组输出:" << std::endl;
for(int i=0;i<nSize;i++)
{
std::cout << cla_vec[i].n << "\t" ;
}
std::cout << std::endl;
std::cout << "通过引用输出" << std::endl;
for(int i=0;i<nSize;i++)
{
A &value=cla_vec.at(i);
std::cout << value.n << "\t" ;
}
std::cout << std::endl;
std::cout << "通过迭代器输出" << std::endl;
std::vector<A>::iterator cla_vec_iter=cla_vec.begin();
while(cla_vec_iter!=cla_vec.end())
{
std::cout << (*cla_vec_iter).n << "\t";
cla_vec_iter++;
}
std::cout << std::endl << std::endl;
std::cout << "-----A的指针向量操作-----" << std::endl;
std::vector<A*> pcla_vec;
A *poin1=new A(1);
A *poin2=new A(2);
A *poin3=new A(3);
pcla_vec.push_back(poin1);
pcla_vec.push_back(poin2);
pcla_vec.push_back(poin3);
nSize=pcla_vec.size();
std::cout << "通过数组输出:" << std::endl;
for(int i=0;i<nSize;i++)
{
std::cout << pcla_vec[i]->n << "\t" ;
}
std::cout << std::endl;
std::cout << "通过引用输出" << std::endl;
for(int i=0;i<nSize;i++)
{
A * &value=pcla_vec.at(i);
std::cout << value->n << "\t" ;
}
std::cout << std::endl;
std::cout << "通过迭代器输出" << std::endl;
std::vector<A*>::iterator pcla_vec_iter=pcla_vec.begin();
while(pcla_vec_iter!=pcla_vec.end())
{
std::cout << (**pcla_vec_iter).n << "\t";
pcla_vec_iter++;
}
std::cout << std::endl;
delete poin1;
delete poin2;
delete poin3;
return 0;
}
针对类的向量增加及获得元素示例
最新推荐文章于 2021-03-30 23:55:58 发布