Vector向量几种情况的总结
2012-08-21 10:17
232 查看
1.vector向量几种情况总结
vector<int> k;//向量
vector<int*> kk;//int指针的向量,以后再详细斟酌
vector<int> *kkk;//vector向量指针
vector<int*> *kkkk;//int指针的向量指针
各中情况的运用:
//定义int型的一个vector,并赋值
vector<int> k;
int* v
= new
int[10];
for (int t=0; t<10;
t++)
{
v[t] = t;
k.push_back(v[t]);//向k中追加值
}
//定义int*型 的一个vector,并赋值
vector<int*> kk;
int* t
= new
int[10];
for(int j=0; j<10;j++)
{
t[j] = j;
kk.push_back(&t[j]);//向kk中追加值
}
//说明,kk.push_back(&t[j])这种形式是正确的,网上查询的kk.push_back(t)是错误的,因为push_back(*const type),t是指针。
//int型的vector指针
vector<int>
*kkk;
kkk = new vector<int>[5];
for (int bb=0; bb<5;
bb++)
{
for (int a=0; a<10;
a++)
{
kkk[bb].push_back(a);//像向量指针中追加值
}
}
//输出
for (int a=0; a<k.size(); a++)
{
cout<<"k["<<a<<"] ="<<k[a]<<endl;
}
for(int a=0; a<kk.size(); a++)
{
cout<<"kk["<<a<<"]= "<<*kk[a]<<endl;
}
for(int bb=0; bb<5;
bb++)
{
for(int aa=0; aa<kkk[bb].size(); aa++)
cout<<"kkk["<<bb<<"]["<<aa<<"]=
"<<kkk[bb][aa]<<endl;
}
//释放向量中int指针
for (std::vector<int*>::iterator
it = kk.begin(); it<kk.end();it++)
{
delete
*it;
}
k.clear();//清除k向量
kk.clear();//清除kk向量
for (int bb=0; bb<5;
bb++)
{
kkk[bb].clear();
}
详细实现:
//vector向量练习
int exciseVector()
{
//定义int的一个vector,并赋值
vector<int> k;
int* v = new int[10];
for (int t=0; t<10; t++)
{
v[t] = t;
k.push_back(v[t]);//向k中追加值
}
//定义int* 的一个vector,并赋值
vector<int*> kk;
int* t = new int[10];
for(int j=0; j<10;j++)
{
t[j] = j;
kk.push_back(&t[j]);//向kk中追加值
}
int* tt = new int[5];
for (int j=0;j<5;j++)
{
tt[j] = 2*j;
kk.push_back(&t[j]);
}
//vector指针
vector<int> *kkk;
kkk = new vector<int>[5];
for (int bb=0; bb<5; bb++)
{
for (int a=0; a<10; a++)
{
kkk[bb].push_back(a);//像向量指针中追加值
kkk[bb].push_back(2*a);
}
}
//类型为指针的vector指针
vector<int*> *kkkk;
//输出
for (int a=0; a<k.size(); a++)
{
cout<<"k["<<a<<"] ="<<k[a]<<endl;
}
for(int a=0; a<kk.size(); a++)
{
cout<<"kk["<<a<<"]= "<<*kk[a]<<endl;
}
for(int bb=0; bb<5; bb++)
{
for(int aa=0; aa<kkk[bb].size(); aa++)
cout<<"kkk["<<bb<<"]["<<aa<<"]= "<<kkk[bb][aa]<<endl;
}
//释放向量中int指针
for (std::vector<int*>::iterator it = kk.begin(); it<kk.end();it++)
{
delete *it;
}
k.clear();//清除k向量
kk.clear();//清除kk向量
for (int bb=0; bb<5; bb++)
{
kkk[bb].clear();
}
delete[] t;
delete[] kkk;
return 1;
}
vector<int> k;//向量
vector<int*> kk;//int指针的向量,以后再详细斟酌
vector<int> *kkk;//vector向量指针
vector<int*> *kkkk;//int指针的向量指针
各中情况的运用:
//定义int型的一个vector,并赋值
vector<int> k;
int* v
= new
int[10];
for (int t=0; t<10;
t++)
{
v[t] = t;
k.push_back(v[t]);//向k中追加值
}
//定义int*型 的一个vector,并赋值
vector<int*> kk;
int* t
= new
int[10];
for(int j=0; j<10;j++)
{
t[j] = j;
kk.push_back(&t[j]);//向kk中追加值
}
//说明,kk.push_back(&t[j])这种形式是正确的,网上查询的kk.push_back(t)是错误的,因为push_back(*const type),t是指针。
//int型的vector指针
vector<int>
*kkk;
kkk = new vector<int>[5];
for (int bb=0; bb<5;
bb++)
{
for (int a=0; a<10;
a++)
{
kkk[bb].push_back(a);//像向量指针中追加值
}
}
//输出
for (int a=0; a<k.size(); a++)
{
cout<<"k["<<a<<"] ="<<k[a]<<endl;
}
for(int a=0; a<kk.size(); a++)
{
cout<<"kk["<<a<<"]= "<<*kk[a]<<endl;
}
for(int bb=0; bb<5;
bb++)
{
for(int aa=0; aa<kkk[bb].size(); aa++)
cout<<"kkk["<<bb<<"]["<<aa<<"]=
"<<kkk[bb][aa]<<endl;
}
//释放向量中int指针
for (std::vector<int*>::iterator
it = kk.begin(); it<kk.end();it++)
{
delete
*it;
}
k.clear();//清除k向量
kk.clear();//清除kk向量
for (int bb=0; bb<5;
bb++)
{
kkk[bb].clear();
}
详细实现:
//vector向量练习
int exciseVector()
{
//定义int的一个vector,并赋值
vector<int> k;
int* v = new int[10];
for (int t=0; t<10; t++)
{
v[t] = t;
k.push_back(v[t]);//向k中追加值
}
//定义int* 的一个vector,并赋值
vector<int*> kk;
int* t = new int[10];
for(int j=0; j<10;j++)
{
t[j] = j;
kk.push_back(&t[j]);//向kk中追加值
}
int* tt = new int[5];
for (int j=0;j<5;j++)
{
tt[j] = 2*j;
kk.push_back(&t[j]);
}
//vector指针
vector<int> *kkk;
kkk = new vector<int>[5];
for (int bb=0; bb<5; bb++)
{
for (int a=0; a<10; a++)
{
kkk[bb].push_back(a);//像向量指针中追加值
kkk[bb].push_back(2*a);
}
}
//类型为指针的vector指针
vector<int*> *kkkk;
//输出
for (int a=0; a<k.size(); a++)
{
cout<<"k["<<a<<"] ="<<k[a]<<endl;
}
for(int a=0; a<kk.size(); a++)
{
cout<<"kk["<<a<<"]= "<<*kk[a]<<endl;
}
for(int bb=0; bb<5; bb++)
{
for(int aa=0; aa<kkk[bb].size(); aa++)
cout<<"kkk["<<bb<<"]["<<aa<<"]= "<<kkk[bb][aa]<<endl;
}
//释放向量中int指针
for (std::vector<int*>::iterator it = kk.begin(); it<kk.end();it++)
{
delete *it;
}
k.clear();//清除k向量
kk.clear();//清除kk向量
for (int bb=0; bb<5; bb++)
{
kkk[bb].clear();
}
delete[] t;
delete[] kkk;
return 1;
}
相关文章推荐
- c++中vector向量几种情况的总结(向量指针,指针的向量)
- 【算法专题】工欲善其事必先利其器—— C++ STL中vector(向量/不定长数组)的常用方法总结
- Laravel输出JSON时设定输出字段的几种情况总结
- 20、Objective C中数组排序几种情况的总结
- iOS json解析出错的几种情况总结
- js正则表达式验证密码格式的几种情况总结
- C++ 动态数组类模板(向量容器)vector与STL用法总结
- 黑马程序员——Objective C中数组排序几种情况的总结——黑马 ios 技术博客
- Objective C中数组排序几种情况的总结
- R语言中的vector(向量),array(数组)总结
- iOS ARC内存泄露的几种情况总结
- Objective C中数组排序几种情况的总结
- 迭代器失效的几种情况总结
- Objective C中数组排序几种情况的总结
- Mysql索引会失效的几种情况总结
- 总结几种居中放置的情况
- 迭代器失效的几种情况总结
- vector向量使用方法总结