作者WSzc (WSzc)
看板C_and_CPP
标题[问题] 关於vector pointer
时间Fri Jun 19 01:04:43 2009
请问一下 如果有下列这个vector pointer:
vector<int>* A;
如果是直接要存data的话
我可以 A->push_back(xxx)
但是如果我想要把data存在array A中 像是存到A[2]
那为何要assign时就会变成 A[2].push_back(xxx) ?
因为这样的话就不是pointer了
基於一些原因 我需要将这pointer assign给另一个pointer用
试过用reference之类的方式接收 可是後面的运算会把他改到
所以还是想请教一下有没有办法让array vector也是pointer呢
就是可以做到类似像下面这件事 (当然这样写compile不会过)
int *B;
vector<int>* A;
B = A[2]->front();
谢谢回答
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 118.161.45.94
1F:推 ianfang:我只能说...你确定学过pointer吗? 你的A[2]是*(A+2)耶 06/19 01:15
2F:→ ianfang:不是vector里的第3个元素... 06/19 01:16
3F:→ ianfang:你要的是 (*A)[2]吧... 没试过语法 应该没错 06/19 01:18
4F:→ WSzc:我的A[2]是*(A+2)没错 我是要拿vector的第一个元素 用front() 06/19 01:22
5F:→ WSzc:等於是二维的 第一维存A有多少个 第二维存每个A里头的元素 06/19 01:25
6F:推 ianfang:那简单...你需要的是vector<int>** A; 06/19 01:41
7F:→ ianfang:还有你前半段的问题 A[2]本来就是要用.呼叫push_back 06/19 01:43
8F:推 ianfang:这是基础语法 06/19 01:44
9F:→ WSzc:喔喔 因为vector<int>* A不能改 所以我才用array 喔我原本以 06/19 01:50
10F:→ WSzc:为A[2]也是个pointer 所以想说会用->呼叫 06/19 01:51
11F:推 aecho:vector<int *> A; int *B; ... 06/19 09:55