VS Code 配置C++ 报错unable to start debugging xxx No such file or directory

你好啊,如果有vscode其他问题 可以看下我的专栏看下有没有相同问题

希望对你有帮助♥♥♥

调试了一下午的vscode 什么问题都有 终于搞好了啊啊啊

原因之一 :文件目录不能存在中文

VS Code 配置C++ 报错unable to start debugging xxx No such file or directory_第1张图片

方法一:把目录其中中文部分 改成 英文就能调试了

如果是图中情况  可以选择C盘 或者其他 重新创建一个文件夹 然后复制文件过去然后重新右键打开文件 ,都是可行的

VS Code 配置C++ 报错unable to start debugging xxx No such file or directory_第2张图片

方法二:

如果喜欢使用中文目录 

建议重新创建 一个英文目录存代码 用来专门调试就行了

VS Code 配置C++ 报错unable to start debugging xxx No such file or directory_第3张图片

有VScode 相关问题也可以留言 搞了一下午 多少问题都见过  一起加油~~

如果对您有帮助 能否给我点个  码字不易  感谢观看~~ 

代码测试

#include 
#include 
#include 
//acwing 例题 格子染色
using namespace std;

typedef pair PII;

const int N = 300010;

int n, m;
int a[N], s[N];

vector alls;//用来保存真实的下标和想象的下标的映射关系
vector add, query; //原来保存操作输入的值

int find(int x) {  //二分查找
     //  因为要求前缀和,故下标从1开始方便,不用额外的再处理边界。
}
int main () {
    cin >> n >> m;
    for (int i = 0; i < n;++ i) {
        int x, c;
        cin >> x >> c;  
        add.push_back({x, c});

        alls.push_back(x);//先把下标放入向量中 统一离散化 
    }
    for (int i = 0; i < m;++ i) {
        int l, r;
        cin >> l >> r;
        query.push_back({l, r});

        alls.push_back(l);
        alls.push_back(r);
//将其左右端点也映射进来,目的是可以让我们在虚拟的映射表里找到,
//这对于我们后面的前缀和操作时是十分的方便的。如果当我们在虚拟的
//映射表里找的时候,如果没有找到左右端点,那么前缀和无法求
    }
    sort(alls.begin(), alls.end());  //排序
    alls.erase(unique(alls.begin(), alls.end()), alls.end());//去除重复元素
   // 1)erase( pos, n); 删除从pos开始的n个字符,例如erase( 0, 1),
   // 删除0位置的一个字符,即删除第一个字符
    //(2)erase( position);   
    //删除position处的一个字符(position是个string类型的迭代器)
    //(3)erase(first,last);删除从first到last之间的字符,
   // (first和last都是迭代器)last 不能是x.end()
    //unique 使用之前 必须要先过一遍sort排序。再者,unique函数返的返回值是
    //一个迭代器,它指向的是去重后容器中不重复序列的最后一个元素的
    //下一个元素。所以如果 想要得到不重复元素的个数就需要用返回值-开始地址。
    for ( auto item : add) { //先对添加里的元素映射 赋值 
        int x = find(item.first);//找到x的映射值 往原数组中加c 
        a[x] += item.second; // 处理插入
    }
    //for(auto a:b)中b为一个容器,效果是利用a遍历并获得b容器中的每一个值,
    //但是a无法影响到b容器中的元素。
    for (int i = 1; i <= alls.size(); ++i)
    {
        s[i] = s[i - 1] + a[i];//前缀和
    }
    for (auto item : query) {
            int l = find(item.first), r = find(item.second);
            cout << s[r] - s[l - 1] << endl;
    }//每个元素都对应一组{first, first}键值对(pair),
    //键值对中的第一个成员称为first,第二个成员称为second.
    return 0;
}
#include 
using namespace std;
const int N = 20;//对角线元素 2n-1 取20防止越界 
int n;
char g[N][N]; //存储图
bool col[N], dg[N], udg[N]; //udg 副对角线 /
//英语单词 column 列   diagonal 主角线 \ 


void dfs (int x) { 

    if (x == n) { // 如果找到方案的话
        for (int i = 0; i < n; i ++) {
            puts(g[i]);//puts输出二维数组 输出每一行如何就会自动换行
        }
        puts("");   
        return; //返回调用函数进行执行
    }
    /* puts语句不理解 可以看下面这个 作用是一样的
        if (x == n) {
            for (int i = 0; i < n; i ++) {
                for (int j = 0; j < n; j ++) {
                    cout << g[i][j];
                }
                cout << endl;
            }
            cout << endl ;
            return;
        }
    */
    //x:行  y:列
    for (int y = 0; y < n; y ++) {
        // 判断皇后能否放在这格  
        // 剪枝(提前判断当前方案已经错误,不再继续往下搜索,提高算法效率)  
        if (!col[y] && !dg[x + y] && !udg[n - x + y]) {
            g[x][y] = 'Q'; 
            col[y] = dg[x + y] = udg[n - x + y] = true;
        
            dfs(x + 1);//找下一层的

            //回溯的时候 记得恢复现场 
            col[y] = dg[x + y] = udg[n - x + y] = false; 
            g[x][y] = '.';
        }
    }
}

int main () {
    cin >> n;
    for (int i = 0; i < n;i ++) {
        for (int j = 0; j < n; j ++) {
            g[i][j] = '.'; //初始化全部空格子
        }
    }
    dfs(0); //从第一行开始找[0:下标]

    return 0;
}
#include

using namespace std;

const int N=1000010;

int n;
int q[N];
int tmp[N];
void merge_sort (int q[],int l,int r) {
    if (l>=r) return ;
    int mid =l+r>>1;

    merge_sort(q,l,mid);
    merge_sort(q,mid+1,r);
    
    int k=0,i=l,j=mid+1;  //i左半边  j中间
    while (i <=mid &&j<=r)      //归并的过程 结果放到临时数组tmp中去
        if(q[i]<=q[j])tmp[k++]=q[i++];
        else tmp[k++]=q[j++];

        //扫尾
    while (i<=mid) tmp[k++]=q[i++]; //剩下的 
    while (j<=r) tmp[k++]=q[j++];

    for (int i=l ,j=0;i<=r;i++,j++) q[i]=tmp[j];  //左边界是l开始 
}

int main () {
    scanf ("%d",&n);

    for (int i=0;i

你可能感兴趣的:(工欲善其事,必先利其器,c++,开发语言,后端,开发工具)