为什么我的向量没有添加结构

Why is my vector not adding the struct?

本文关键字:添加 结构 我的 向量 为什么      更新时间:2023-10-16

我在这个项目的最后一部分在这个算法上遇到了问题。我的矢量的 .size() 有问题。它没有给我任何东西。每次我尝试调试它时,它都是 0。我不知道这是否意味着我的函数无法正常工作。

我是编程新手,我需要一些帮助。

编辑1:我添加了给我一个例外的新代码。

#include "stdafx.h"
#include <iostream>
#include <conio.h>
#include <vector>

using namespace System;
using namespace std;

typedef struct Linea {
    int a;
    int q;
    int b;
    int r;
} SLinea;
int algoritmoeuclides(int a,int b)
{
    if (a%b==0)
        return b;
    return algoritmoeuclides(b,a%b);
}
std::pair<int, int>division(int dividendo,int divisor)
{
    int resultado=0;
    int residuo=0;
    residuo=dividendo%divisor;
    resultado=dividendo/divisor;
    std::pair<int, int>retorno;
    retorno.first=resultado;
    retorno.second=residuo;
    return retorno;
}
std::pair<int, int>EuclidesExtendido(int a,int b,vector<SLinea*> aux)
{
    std::pair<int, int> tsqt;
    int q,r,s,t;
    SLinea *var;
    if (b == 0)
        return std::pair<int, int> (1, 0);
    else
    {
        std::pair<int, int>qr = division(a, b);
        q=qr.first;
        r=qr.second;
        std::pair<int, int>st = EuclidesExtendido(b, r,aux);
        s=st.first;
        t=st.second;
    }
    tsqt.first=t;
    tsqt.second=s-q*t;
    var->a=a;
    var->b=b;
    var->q=q;
    var->r=r;
    aux.push_back(var);
    return tsqt;

}
int main()
{
    int a=23;
    int b=120;
    int s,t;
    vector<SLinea*> Ecuacion;

    std::pair<int, int>st=EuclidesExtendido(a,b,Ecuacion);
    s=st.first;
    t=st.second;
    int resultado=algoritmoeuclides(a,b);
    int n=Ecuacion.size();
    for (int i=0;i<n;i++)
    {
        printf("%d=%dx%d+%dn",Ecuacion[i]->a,Ecuacion[i]->b,Ecuacion[i]->q,Ecuacion[i]->r);

    }
    printf("MCD= %dn ",resultado);
    printf("s=%d  nt=%d",s,t);
    system("pause");
}  

    #include "stdafx.h"
    #include <iostream>
    #include <conio.h>
    #include <vector>

    using namespace System;
    using namespace std;

    typedef struct Linea {
        int a;
        int q;
        int b;
        int r;
    } SLinea;
    int algoritmoeuclides(int a,int b)
    {
        if (a%b==0)
            return b;
        return algoritmoeuclides(b,a%b);
    }
    std::pair<int, int>division(int dividendo,int divisor)
    {
        int resultado=0;
        int residuo=0;
        residuo=dividendo%divisor;
        resultado=dividendo/divisor;
        std::pair<int, int>retorno;
        retorno.first=resultado;
        retorno.second=residuo;
        return retorno;
    }
    std::pair<int, int>EuclidesExtendido(int a,int b,vector<SLinea> aux)
    {
        std::pair<int, int> tsqt;
        int q,r,s,t;
        SLinea var;
        if (b == 0)
            return std::pair<int, int> (1, 0);
        else
        {
            std::pair<int, int>qr = division(a, b);
            q=qr.first;
            r=qr.second;
            std::pair<int, int>st = EuclidesExtendido(b, r,aux);
            s=st.first;
            t=st.second;
        }
        tsqt.first=t;
        tsqt.second=s-q*t;
        var.a=a;
        var.b=b;
        var.q=q;
        var.r=r;
        aux.push_back(var);
        return tsqt;

    }
    int main()
    {
        int a=23;
        int b=120;
        int s,t;
        vector<SLinea> Ecuacion;

        std::pair<int, int>st=EuclidesExtendido(a,b,Ecuacion);
        s=st.first;
        t=st.second;
        int resultado=algoritmoeuclides(a,b);
        int n=Ecuacion.size();
        for (int i=0;i<n;i++)
        {
            printf("%d=%dx%d+%dn",Ecuacion[i].a,Ecuacion[i].b,Ecuacion[i].q,Ecuacion[i].r);

        }
        printf("MCD= %dn ",resultado);
        printf("s=%d  nt=%d",s,t);
        system("pause");
    }
std::pair<int, int> EuclidesExtendido(int a,int b,vector<SLinea> aux)

该函数按值获取参数aux,这意味着它获取用作参数的任何内容的副本。我会让你从那里拿走它...