C++知识总结(10)

来源:互联网 发布:常见毒药 知乎 编辑:程序博客网 时间:2024/06/05 21:09

42 如何调试内存错误?

1.利用gdb逐步查找段错误: 

2.分析Core文件

3.段错误时启动调试

4.4.利用backtraceobjdump进行分析

 

 

43 STL类库

a) =,assign() //赋以新值 
b) swap() //交换两个字符串的内容 
c) +=,append(),push_back() //在尾部添加字符 
d) insert() //插入字符 
e) erase() //删除字符 
f) clear() //删除全部字符 
g) replace() //替换字符 
h) + //串联字符串 
i) ==,!=,<,<=,>,>=,compare() //比较字符串 
j) size(),length() //返回字符数量 
k) max_size() //返回字符的可能最大个数 
l) empty() //判断字符串是否为空 
m) capacity() //返回重新分配之前的字符容量 
n) reserve() //保留一定量内存以容纳一定数量的字符 
o) [ ], at() //存取单一字符 
p) >>,getline() //stream读取某值 
q) << //将谋值写入stream 
r) copy() //将某值赋值为一个C_string 
s) c_str() //将内容以C_string返回 
t) data() //将内容以字符数组形式返回 
u) substr() //返回某个子字符串 
v)查找函数 
w)begin() end() //提供类似STL的迭代器支持 
x) rbegin() rend() //逆向迭代器 
y) get_allocator() //返回配置器 

 

 

44什么是泛型编程

不同的类型采用相同的操作,泛型编程(Generic Programming)是一种语言机制,通过它可以实现一个标准的容器库。
像类一样,泛型也是一种抽象数据类型,但是泛型不属于面向对象,它是面向对象的补充和发展。
在面向对象编程中,当算法与数据类型有关时,面向对象在对算法的抽象描述方面存在一些缺陷。

 

45、栈与队列的区别有哪些

栈与队列的相同点:

1.都是线性结构。

2.插入操作都是限定在表尾进行。

3.都可以通过顺序结构和链式结构实现。、

4.插入与删除的时间复杂度都是O(1),在空间复杂度上两者也一样。

5.多链栈和多链队列的管理模式可以相同。

栈与队列的不同点:

1.删除数据元素的位置不同,栈的删除操作在表尾进行,队列的删除操作在表头进行。

2.应用场景不同;常见栈的应用场景包括括号问题的求解,表达式的转换和求值,函数调用和递归实现,深度优先搜索遍历等;常见的队列的应用场景包括计算机系统中各种资源的管理,消息缓冲器的管理和广度优先搜索遍历等。

3.顺序栈能够实现多栈空间共享,而顺序队列不能。

原创粉丝点击