为什么我的向量没有添加结构
Why is my vector not adding the struct?
我在这个项目的最后一部分在这个算法上遇到了问题。我的矢量的 .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
,这意味着它获取用作参数的任何内容的副本。我会让你从那里拿走它...
相关文章:
- 添加静态constexpr成员是否会更改结构/类的内存映射
- 无法添加多个键以映射将结构作为键
- 我可以在 C++ 中将数据成员/变量从其定义之外添加到结构中吗?
- C++:添加新结构时,结构指针向量中的所有元素都会更新
- 继承层次结构并将元素添加到向量
- 如何使用矢量元素将项目添加到结构中?
- 将结构时间规范添加到类(似乎没有其他类型的)会导致EXEC_BAD_ACCESS
- 为什么添加析构函数(甚至是空的)会破坏我的结构,该结构使用 ref 转发和折叠来保存 ref 或值的副本?
- 在C++中将类实例添加到对象层次结构中的问题
- 用于添加和查找查询的适当数据结构
- 如何在不添加对库的依赖的情况下添加与库结构的兼容性
- 将指向结构数组的指针添加到 std::map
- 如何将运算符定义从头文件添加到现有结构?
- 如何在类中添加结构,结构的向量以映射
- 尝试在文本文件中添加结构元素而不覆盖它
- 为什么我的向量没有添加结构
- 使用 enable_if 选择性地添加结构成员
- Clang重写器:为无效程序添加结构定义
- 向Std::vector添加结构体时使用Std::bad_alloc
- 动态地向容器中添加结构并检索它们