小编use*_*740的帖子

std :: map和二分查找树

我已经读过std map是使用二叉搜索树数据结构实现的.

BST是一种顺序数据结构(类似于数组中的元素),它将元素存储在BST节点中并按顺序维护元素.例如,如果element小于node,则将其存储在节点的左侧,如果它大于node,则将其存储在节点的右侧.通过这种方法,我们实现了搜索,插入等各种操作的O(log n)复杂度.

但是,std map是一个关联容器.我们有一个键和值插入.它是否真的使用BST实现,如果是,如何实现?在BST,我们没有任何关键或价值.它是一种标准容器.

我有点困惑.请帮我澄清一下.它不影响我的工作,但我想更好地理解它们.谢谢你的帮助.

c++ stl binary-search-tree data-structures

7
推荐指数
1
解决办法
1万
查看次数

使用gdb跟踪C++中的函数调用

我有一个在Linux平台上用C++开发的系统.我正在对这个系统进行一些调试.我想查找函数的完整函数调用序列.让我们假设函数按以下顺序调用

function_1 -> function_2 -> function_3 -> function_4
Run Code Online (Sandbox Code Playgroud)

如果我在function_4上设置了一个断点,那么执行将在那时保持.我想看看在function_4之前调用functions_1,function_2和function_3.如果有任何gdb命令来跟踪这些函数调用?

谢谢,Ankur

c++ debugging callstack gdb

3
推荐指数
1
解决办法
2536
查看次数

VPATH没有在makefile中wotking

我有一个非常小的make文件包含内容

VPATH = src

main: main.o
        gcc -o main main.o

main.o: main.c
        gcc -c main.c
Run Code Online (Sandbox Code Playgroud)

当前目录包含一个包含main.c的目录src

当我执行make时,我得到错误

gcc -c main.c
gcc: main.c: No such file or directory
gcc: no input files
make: *** [main.o] Error 1
Run Code Online (Sandbox Code Playgroud)

当我在当前目录中移动main.c时,它可以工作.似乎VPATH宏不起作用.请告诉我VPATH的用法.

linux makefile

2
推荐指数
1
解决办法
2161
查看次数