关于string 和 char * 区别
string 和 char * 两者的区别是什么 ? 什么时候用string好? 什么时候用 char * 合适? 什么时候同时都能用?
请高手解答 谢谢
[解决办法]
区别主要是:
string的内存管理是由系统处理,除非系统内存池用完,不然不会出现这种内存问题。
char *的内存管理由用户自己处理,很容易出现内存不足的问题。
当我们要存一个串,但是不知道其他需要多少内存时, 用string来处理就最好不过了。
当你知道了存储的内存的时候,可以用char *,但是不如用string的好,用指针总会有
隐患。
用string还可以使用各种成员函数来处理串的每一个字符,方便处理。
用char *处理串,就不如string的方便了,没有相应的函数来直接调用,而是要自己编
写函数来完成串的处理,而且处理过程中用指针还很容易出现内存问题。
我建议尽量使用string,不用char*;
尽量使用vector(关联数组),不用数组;
尽量使用迭代器,而不用指针。
以上只是我的一些见解,有什么不合适之处,还请出。谢谢!
[解决办法]
string是个类,封装了好多方法,在对效率不是很高的情况下是很好的选择,char* 是字符串指针,效率比string高
[解决办法]
string代替char*也好,vector代替数组也好,都不是必须要这样的
实际上用stl的东西还是要谨慎些,很多东西必须要注意而不是简单替换
如果对stl一知半解,就简单用vector代替数组,string代替char*,你会发现你的程序慢的跟牛一样。。。
[解决办法]
[解决办法]
char*是最早的处理字符串的方法,C里只有这种
string是对进行了封闭,是一个类,
你不闭事先知道要存的字符串的大小,系统会帮你做好这些工作,
而且提供了很多成员函数来帮你处理字符串,相对较方便,
不过,在性能上会有所开销,有时占用内存也较多(要存储类成员等)
如果仅仅存储一些简单的字符串,不进行很复杂的操作,
长度也变化不大,或者效率要求很高时,那就用char*
其他情况,推荐用string吧