您的位置:首页 > 理论基础 > 计算机网络

vector 扩展的时候http://bbs.csdn.net/topics/260070400

2016-03-01 11:01 471 查看
指向vector的指针还是会指向vector,但是指向元素的指针式会不断的改变的

发表于: 2008-09-05 11:00:24

有如何申明:

struct myLine//端口节点

{

POINT* startpt;

POINT* endpt;

};

vector<POINT> m_points;

myline里面的两个指针均指向m_points里面的点。由于当m_points进行push.pack时,myline里面的指针失效。

我又不想每次m_points进行push.pack或是delete的时候,对myLine和m_points重新进行匹对,有其他办法吗?

谢谢。

更多0分享到:

对我有用[0] 丢个板砖[0] 引用 | 举报 | 管理
回复次数:6



关注
taojian_hhu
taojian_hhu
本版等级:


#1 得分:0回复于: 2008-09-05
11:18:32

m_points进行push.pack时

和myline有什么关系
对我有用[0] 丢个板砖[0] 引用 | 举报 | 管理




关注
e_sharp
e_sharp
本版等级:


#2 得分:0回复于: 2008-09-05
11:19:13

用list <POINT> m_points;
对我有用[0] 丢个板砖[0] 引用 | 举报 | 管理




关注
hai040
hai040
本版等级:


#3 得分:0回复于: 2008-09-05
11:22:59

没办法,指针改成index?
对我有用[0] 丢个板砖[0] 引用 | 举报 | 管理




关注
e_sharp
e_sharp
本版等级:


#4 得分:20回复于: 2008-09-05
11:23:03

vector每次重新分配内存的时候,都要做大量的copy,myline指向的地方,就会被释放,这样就需要重新指向

而且重新分配内存的工作是编译器做的,并不是每次push_back都会重新分配内存,不好判断什么时候需要重新指向

用list就没事了

如果一定要用vector,那就开始分配足够的空间
对我有用[1] 丢个板砖[0] 引用 | 举报 | 管理




关注
jieao111
jieao111
本版等级:


#5 得分:0回复于: 2008-09-05
11:32:31

list
对我有用[0] 丢个板砖[0] 引用 | 举报 | 管理




关注
runtian
runtian
本版等级:


#6 得分:0回复于: 2008-09-05
11:42:42

非常感谢e_sharp,我测试list通过。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: