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])这两种方法都报错,请问正确的定义方法是什么 展开
 我来答
tattackor
推荐于2017-09-04 · TA获得超过3.5万个赞
知道大有可为答主
回答量:5083
采纳率:94%
帮助的人:889万
展开全部
(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 必须包含相关的头文件 。
百度网友3038d88
2012-08-27 · TA获得超过1097个赞
知道小有建树答主
回答量:1670
采纳率:0%
帮助的人:1167万
展开全部
定义没有引用吧...
那个叫 "&" 取址符
定义个vector指针 = &原来的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
csuideal
推荐于2017-10-13 · TA获得超过338个赞
知道小有建树答主
回答量:150
采纳率:0%
帮助的人:186万
展开全部
vector<int> a[100];
a[0].push_back(1);
vector<int>(&b)[100] = a;
printf("i=%d\n",b[0][0]);
楼主可以测试下
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
xujie520520
2012-08-27 · TA获得超过397个赞
知道小有建树答主
回答量:320
采纳率:100%
帮助的人:244万
展开全部
数组,vector不能定义引用。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式