赞
踩
在刷leetcode时,遇到了一道使用标准库的题,如下
- #include <stdio.h>
- #include <stdlib.h>
- #include <vector>
- #include <algorithm>
- #include <iostream>
- using namespace std;
- void merge(vector<int>& nums1, int m, vector<int>& nums2, int n) {
- //将nums2中的数先装进nums1
- int j = 0;
- for(int i = (m-1); i < (m+n);i++ ){
- nums1[i] = nums2[j++];
- }
- //将nums1按从小到大排序
- std::sort(nums1.begin(),nums1.end());
- }
- int main(){
- using namespace std;
- vector<int> nums1 = {1,2,3,0,0,0};
- int m = 3;
- vector<int> nums2 = {2,5,6};
- int n = 3;
- merge(nums1,m,nums2,n);
- //输出合并排序后的 nums1
- for (int num : nums1) {
- std::cout << num << " ";
- }
- std::cout << std::endl;
- return 0;
- }
如果使用命令行编译:g++ main.cpp -lstdc++ 则没有问题
但使用VS Code调试时会出现如下报错
分析可知是代码中使用了标准库,但是在vscode中debug时没链接上
打开tasks.json
将“-lstdc++”添加上,再次调试
可以正常使用
以此类推,在编译多线程调试的时候直接用vscode调试则
打开task.json添加上“-lpthread”
就可以正常调试了~
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。