c++怎么定义vector的引用
比如我有100个容器vector<int>a[100],现在我要把他们按照指定的顺序排序,比如b[3]=a[1],b[8]=a[2]...以此类推,除了新建100个容器这...
比如我有100个容器vector<int> a[100],现在我要把他们按照指定的顺序排序,比如b[3]=a[1],b[8]=a[2]...以此类推,除了新建100个容器这个方法,我想把b[ ]定义成a[ ]的引用,这样子可以节省很多内存,请问该怎么定义,例如:我用vector<int &> b[1](a[2])和vector<int> &b[1](a[2])这两种方法都报错,请问正确的定义方法是什么
展开
4个回答
展开全部
(1)vector< 类型 > 标识符 ;
(2)vector< 类型 > 标识符(最大容量) ;
(3)vector< 类型 > 标识符(最大容量,初始所有值);
(4) int i[4] = {12,3,4,5};
vector< 类型 > vi(i , i+2); //得到i索引值为3以后的值 ;
(5)vector< vector<int> > //vi 定义2维的容器;记得一定要有空格,不然会报错
vector< int > line
// 在使用的时候一定要首先将vi个行进行初始化;
for(int i = 0 ; i < 10 ; i ++)
{
vector.push_back(line);
}
/// 个人认为使用vector定义二维数组很好,
因为是长度可以不预先确定。很好。
(6)C++ Vector排序
vector< int > vi ; vi.push_back(1); vi.push_back(3); vi.push_back(0); sort(vi.begin() , vi.end()); /// /小到大 reverse(vi.begin(),vi.end()) /// 从大道小
(7)顺序访问
vector < int > vi ; for( int i = 0 ; i < 10 ; i ++) { vector.push_back(i); } for(int i = 0 ; i < 10 ; i ++) /// 第一种调用方法 { cout <<vector[i] <<" " ; } for(vector<int>::iterator it = vi.begin() ; it !=vi.end() ; it++) ///第二种调用方法 { cout << *it << " " ; }
(8)寻找
vector < int > vi ; for( int i = 0 ; i < 10 ; i ++) { vector.push_back(i); } vector < int >::interator it = find(vi.begin() , vi.end,3) ; cout << *it << endl ; ///返回容器内找到值的位置。
(9)使用数组对C++ Vector进行初始化
int i[10] ={1,2,3,4,5,6,7,78,8} ; ///第一种 vector<int> vi(i+1,i+3); ///从第2个元素到第三个元素 for(vector <int>::interator it = vi.begin() ; it != vi.end() ; it++) { cout << *it <<" " ; }
(10) 结构体类型
struct temp { public : string str ; public : int id ; }tmp int main() { vector <temp> t ; temp w1 ; w1.str = "Hellowor" ; w1.id = 1 ; t.push_back(t1); cout << w1.str << "," <<w1.id <<endl ; return 0 ; }
vector类为内置数组提供了一种替代表示,与string类一样 vector 类是随标准
C++引入的标准库的一部分 ,为了使用vector 必须包含相关的头文件 。
(2)vector< 类型 > 标识符(最大容量) ;
(3)vector< 类型 > 标识符(最大容量,初始所有值);
(4) int i[4] = {12,3,4,5};
vector< 类型 > vi(i , i+2); //得到i索引值为3以后的值 ;
(5)vector< vector<int> > //vi 定义2维的容器;记得一定要有空格,不然会报错
vector< int > line
// 在使用的时候一定要首先将vi个行进行初始化;
for(int i = 0 ; i < 10 ; i ++)
{
vector.push_back(line);
}
/// 个人认为使用vector定义二维数组很好,
因为是长度可以不预先确定。很好。
(6)C++ Vector排序
vector< int > vi ; vi.push_back(1); vi.push_back(3); vi.push_back(0); sort(vi.begin() , vi.end()); /// /小到大 reverse(vi.begin(),vi.end()) /// 从大道小
(7)顺序访问
vector < int > vi ; for( int i = 0 ; i < 10 ; i ++) { vector.push_back(i); } for(int i = 0 ; i < 10 ; i ++) /// 第一种调用方法 { cout <<vector[i] <<" " ; } for(vector<int>::iterator it = vi.begin() ; it !=vi.end() ; it++) ///第二种调用方法 { cout << *it << " " ; }
(8)寻找
vector < int > vi ; for( int i = 0 ; i < 10 ; i ++) { vector.push_back(i); } vector < int >::interator it = find(vi.begin() , vi.end,3) ; cout << *it << endl ; ///返回容器内找到值的位置。
(9)使用数组对C++ Vector进行初始化
int i[10] ={1,2,3,4,5,6,7,78,8} ; ///第一种 vector<int> vi(i+1,i+3); ///从第2个元素到第三个元素 for(vector <int>::interator it = vi.begin() ; it != vi.end() ; it++) { cout << *it <<" " ; }
(10) 结构体类型
struct temp { public : string str ; public : int id ; }tmp int main() { vector <temp> t ; temp w1 ; w1.str = "Hellowor" ; w1.id = 1 ; t.push_back(t1); cout << w1.str << "," <<w1.id <<endl ; return 0 ; }
vector类为内置数组提供了一种替代表示,与string类一样 vector 类是随标准
C++引入的标准库的一部分 ,为了使用vector 必须包含相关的头文件 。
展开全部
定义没有引用吧...
那个叫 "&" 取址符
定义个vector指针 = &原来的
那个叫 "&" 取址符
定义个vector指针 = &原来的
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
vector<int> a[100];
a[0].push_back(1);
vector<int>(&b)[100] = a;
printf("i=%d\n",b[0][0]);
楼主可以测试下
a[0].push_back(1);
vector<int>(&b)[100] = a;
printf("i=%d\n",b[0][0]);
楼主可以测试下
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
数组,vector不能定义引用。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询