程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> Vector向量幾種情況的總結

Vector向量幾種情況的總結

編輯:C++入門知識

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;
}

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved