x******a 发帖数: 6336 | 1 看到的面试题里面很多关于arrays和pointer的,
是不是这个很重要,例如比其他container和iterator?
为什么C++ primer上说arrays和pointer基本不要用啊?
谢谢 |
t*****j 发帖数: 1105 | 2 啊,pointer是怕有指向非法区域吧。array不要用我就不懂了。
【在 x******a 的大作中提到】 : 看到的面试题里面很多关于arrays和pointer的, : 是不是这个很重要,例如比其他container和iterator? : 为什么C++ primer上说arrays和pointer基本不要用啊? : 谢谢
|
A*****s 发帖数: 13748 | 3 pointer不要用怎么搞矩阵运算?
【在 x******a 的大作中提到】 : 看到的面试题里面很多关于arrays和pointer的, : 是不是这个很重要,例如比其他container和iterator? : 为什么C++ primer上说arrays和pointer基本不要用啊? : 谢谢
|
x******a 发帖数: 6336 | 4 书上说arrays have significant drawbacks compared to vectors:...
modern C++ programs should almost always use vectors instead of arrays
....
【在 t*****j 的大作中提到】 : 啊,pointer是怕有指向非法区域吧。array不要用我就不懂了。
|
t*****j 发帖数: 1105 | 5 虽然不知道vector是怎么实现的,可是vector内存用的肯定比array多。这句话有点过
了,我觉得。
【在 x******a 的大作中提到】 : 书上说arrays have significant drawbacks compared to vectors:... : modern C++ programs should almost always use vectors instead of arrays : ....
|
a****n 发帖数: 1887 | 6 vector 多三个指针,另外heap的reserve空间一般大于vector实际长度
指针一定是iterator, iterator 一般需要dereference 才是指针
没有特别需求的话, 一般都用vector 替代 array, iterator 或者reference 替代
pointer,会获得比较好的安全性,
ps
sort(c.begin(), c.end());
sort(&A[0], &A[length of A]);
都可以 |
k*******d 发帖数: 1340 | 7 用vector基本是可以代替array的,因为它也是连续存储的,用的时候小心些基本不会
影响效率,而且它也兼容那些需要指针作为parameter的函数,和老代码可以兼容
不用pointer基本不可能,不用pointer的话怎么实现polymorphism, 虽然reference也
可以,但是限制多,实现多态还是用指针方便,当然,为了安全起见,可以用smart
pointer。
C程序员习惯用pointer,面试题因为都是小规模程序,用指针常常可以更快更简练地解
决问题,所以面试用pointer多,从design角度来看,还是少用raw pointer为好 |
k*******d 发帖数: 1340 | 8 array的size是静态的,而且越界了没有警告,也会指向非法区域的
【在 t*****j 的大作中提到】 : 啊,pointer是怕有指向非法区域吧。array不要用我就不懂了。
|
a****n 发帖数: 1887 | 9 vector index也可以直接操作end后面的元素, vector at取元素可以做越界检测 |
f*p 发帖数: 52 | 10 array和pointer比较难用,因为涉及到一些内存管理。但比container轻量,用的好对
提升效率是有好处的
【在 x******a 的大作中提到】 : 看到的面试题里面很多关于arrays和pointer的, : 是不是这个很重要,例如比其他container和iterator? : 为什么C++ primer上说arrays和pointer基本不要用啊? : 谢谢
|