首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

看到c++ primer上说尽可能不要用数组指针

2013-10-01 
看到c++ primer上说尽量不要用数组指针如题,不知道各位前辈在写c++程序时一般都是优先考虑容器的吗?c++[解

看到c++ primer上说尽量不要用数组指针
如题,不知道各位前辈在写c++程序时一般都是优先考虑容器的吗? c++
[解决办法]
Yes. always STL container. This is part of modern C++. I am surprised that lots of programmers in China still suffer from pointer pain in C++.
[解决办法]
C++的话,当然首先考虑用STL中的容器。

引用:
如题,不知道各位前辈在写c++程序时一般都是优先考虑容器的吗?

[解决办法]
用数组指针 ---一  不小心 你就没好好的调用析构函数了 内存泄露了  有么?
[解决办法]
引用:
Quote: 引用:

C++的话,当然首先考虑用STL中的容器。

Quote: 引用:

如题,不知道各位前辈在写c++程序时一般都是优先考虑容器的吗?

用数组和指针和用容器比起来效率相差的大吗?

请用profiler估测performance,不要自己乱猜
stl的containers和算法在大部分的情况下效率都很好
绝对比一般人写出来的代码还要好上许多
如果你指的是透过pointer动态分布memory的array
其效率和vector是差不多的

你也许有机会遇上例外,但是你不该过分在意这些
因为他们很少发生

stl的bottleneck多半是因为不会用而产生的
例如资料结构没学好的人搞不懂何时该用vector
何时该用deque,list等

除了containers外,stl提供的各类算法也可以帮助我们
提升开发速度,在lambda出现后使用上是方便了很多



引用:
Yes. always STL container. This is part of modern C++. I am surprised that lots of programmers in China still suffer from pointer pain in C++.

有同感,不知道为何一堆人还在写c with classes,偏偏他们写的东西性能,可读性,灵活性都
远不如stl已经提供的组件;这些坚持自己动手比较好的人,其水平大部分都跟某神棍一样高
[解决办法]
引用:
Quote: 引用:

C++的话,当然首先考虑用STL中的容器。

Quote: 引用:

如题,不知道各位前辈在写c++程序时一般都是优先考虑容器的吗?

用数组和指针和用容器比起来效率相差的大吗?


Your question is too vague, it's hard to give you the correct answer. It actually depends on how you use array or vector, where do you use it. In most cases, STL/string should be default container and unique_ptr/shared_ptr should be default if you use pointer.
[解决办法]
引用:
用数组和指针和用容器比起来效率相差的大吗?

性能不是首要问题,最重要的是安全,稳定。
抛开安全之后,再看效率,你会发现STL容器本身也不会和 数组和指针 相差太多,STL的中的容器算法都是精心编写的,比我们自己一般写的要好的多。

既然有人都帮你做好了,为什么要重复造轮子呢?如果轮子不好,的确需要自己造,但前提是你能保证自己做的比别人做的好。一般刚入门或接触好几年的人都不建议自己造轮子,除非你对C++有很深入的了解,否则尽量去用现成的。
[解决办法]
只要把握的好,其实用那个都可以!
书上也只是建议而已,具体的得看具体的上下代码!
[解决办法]
尺有所短,寸有所长。
[解决办法]
非瓶颈 stl
瓶颈 的话确认是stl的问题再换
[解决办法]
不要迷信书上说的,为啥一定要用容器?
如果数组指针已经满足你的需求,为啥一定要用vector或deque等?
乱用各种容器各种模版,是造成部分程序员写C++程序效率低的根源,什么时候该用什么是根据需求,不是千篇一律
[解决办法]
我看WinCe的源码,驱动里头很多c++, 但也不过是用了c with classes的特性,丝毫没有stl。 我觉得不要太教条
[解决办法]
按照c++ primer的话,没错,指针数组这种变量很容易让人脑子要想一会才明白其语义,如果觉得vector在堆上分配内存有点大材小用,可以用std::array,这个是c++11中的标准容器,在栈上分配内存
[解决办法]
编程不是死板的,你自然知道何时用数组何时用容器,性能,容量,开发效率,是你自然要考虑的问题.
[解决办法]
cpp的封装问题,实质上是。cpp核心太底层。容器比数组功能强大。

热点排行