vector sort 段错误。

Program received signal SIGSEGV, Segmentation fault.
0xf74a448c in std::basic_string<char, std::char_traits<char>, std::allocator<char> >::assign(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) () from /usr/lib/libstdc++.so.6
(gdb) bt
#0  0xf74a448c in std::basic_string<char, std::char_traits<char>, std::allocator<char> >::assign(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) () from /usr/lib/libstdc++.so.6
#1  0xf74a4565 in std::basic_string<char, std::char_traits<char>, std::allocator<char> >::operator=(std::basic_string<char, std::char_traits<char>, std::allocator<char> > const&) () from /usr/lib/libstdc++.so.6
#2  0xf3b16bcc in follow_jce_def::jceFollowNodeInfo::operator= (this=0x9daeb30)
    at /data/hadesmo/livesvn/app/spp_follow/comm/jce_protocol/include/follow_jce_def.h:457
#3  0xf3b17d7e in std::__unguarded_linear_insert<__gnu_cxx::__normal_iterator<follow_jce_def::jceFollowNodeInfo*, std::vector<follow_jce_def::jceFollowNodeInfo, std::allocator<follow_jce_def::jceFollowNodeInfo> > >, follow_jce_def::jceFollowNodeInfo, bool (*)(follow_jce_def::jceFollowNodeInfo const&, follow_jce_def::jceFollowNodeInfo const&)> (__last=..., __val=..., 
    __comp=0xf3adcdf4 <followCmp(follow_jce_def::jceFollowNodeInfo const&, follow_jce_def::jceFollowNodeInfo const&)>)
    at /usr/include/c++/4.1.2/bits/stl_algo.h:2253
#4  0xf3b17e33 in std::__unguarded_insertion_sort<__gnu_cxx::__normal_iterator<follow_jce_def::jceFollowNodeInfo*, std::vector<follow_jce_def::jceFollowNodeInfo, std::allocator<follow_jce_def::jceFollowNodeInfo> > >, bool (*)(follow_jce_def::jceFollowNodeInfo const&, follow_jce_def::jceFollowNodeInfo const&)> (__first=..., __last=..., 
    __comp=0xf3adcdf4 <followCmp(follow_jce_def::jceFollowNodeInfo const&, follow_jce_def::jceFollowNodeInfo const&)>)
    at /usr/include/c++/4.1.2/bits/stl_algo.h:2344
#5  0xf3b18154 in std::__final_insertion_sort<__gnu_cxx::__normal_iterator<follow_jce_def::jceFollowNodeInfo*, std::vector<follow_jce_def::jceFollowNodeInfo, std::allocator<follow_jce_def::jceFollowNodeInfo> > >, bool (*)(follow_jce_def::jceFollowNodeInfo const&, follow_jce_def::jceFollowNodeInfo const&)> (__first=..., __last=..., 
    __comp=0xf3adcdf4 <followCmp(follow_jce_def::jceFollowNodeInfo const&, follow_jce_def::jceFollowNodeInfo const&)>)
    at /usr/include/c++/4.1.2/bits/stl_algo.h:2379
#6  0xf3b181ef in std::sort<__gnu_cxx::__normal_iterator<follow_jce_def::jceFollowNodeInfo*, std::vector<follow_jce_def::jceFollowNodeInfo, std::allocator<follow_jce_def::jceFollowNodeInfo> > >, bool (*)(follow_jce_def::jceFollowNodeInfo const&, follow_jce_def::jceFollowNodeInfo const&)> (__first=..., __last=..., 
    __comp=0xf3adcdf4 <followCmp(follow_jce_def::jceFollowNodeInfo const&, follow_jce_def::jceFollowNodeInfo const&)>)
    at /usr/include/c++/4.1.2/bits/stl_algo.h:2751

#7  0xf3ae2fd0 in Logic::FollowDataGet (this=0xf37ff008, flow=4, arg1=0x9d83c88, arg2=0x9d7f650) at ./include/logic.h:480


#6有问题。

原因,std::sort(v.begin(),v.end(),cmp) 中的cmp函数没有保证单调性。否则sort里面有个插入操作会越界。

必须保证,如果 a<=b ,b<=c 则 a<=c。



### CodeBlocks 调试过程中的常见问题及解决方法 当在 CodeBlocks 中遇到调试问题时,通常可以从以下几个方面着手解决问题: #### 配置编译器设置 确保使用的编译器配置正确无误。对于VC++ 10,在较为现代的计算机上使用该版本应当不会存在问题[^1]。然而,如果是在CodeBlocks环境中,则需确认已安装适用于CodeBlocks的正确编译器版本。 #### 设置断点并启动调试会话 为了有效利用调试功能,可以在源代码中适当位置设定断点。通过点击编辑窗口左侧边缘来创建断点,这有助于暂停程序执行以便检查变量状态和其他运行时期行为。 #### 查看错误信息 假如尝试调用某些ROS包命令如 `rospack find roscpp` 或者其他脚本文件时出现问题,应该注意查看具体的报错提示。常见的HTTP响应码比如“404 File Not Found” 和 “500 Internal Server Error”,这些都指示着不同的潜在原因[^3]。不过这类情况更可能发生在网络请求场景下而非本地C/C++项目开发环境内。 针对特定编号为check1026的问题,虽然没有直接提及此确切ID的具体描述,但是可以推测可能是由于构建选项不当或是链接库缺失所引起的连接失败等问题。此时建议按照如下方式排查: - **验证工具链路径**:保证所有的外部依赖项都能被正确找到; - **清理重建工程**:有时候残留的目标文件可能会干扰新的编译流程,因此先做一次彻底清洁再重新编译往往能消除一些隐匿的小毛病; - **查阅官方文档和支持论坛**:许多开发者社区里已经有人分享过相似经历及其对应的修复措施; ```cpp // 示例:简单的C++ Hello World用于测试基本编译与调试 #include <iostream> int main() { std::cout << "Hello, world!" << std::endl; return 0; } ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值