Я настоящий новичок, и это действительно сложно для меня.Я искал ответ, но я не смог найти его здесь или, если я видел его ... мне кажется, это сложно.
Вот что я пытаюсь сделать:
У меня есть эти заголовки
#include <iostream>
#include <string>
#include <vector>
И у меня есть эти структуры
struct stFecha {
int dia;
int mes;
int ano;
};
struct stPersona {
string cedula;
string nombre;
string apellido;
stFecha fechaNacimiento;
char estado;
};
struct stCuentaBancaria{
string numeroCuenta;
string nombreOficialBancario;
double totalDebito;
double totalCredito;
vector<stPersona> clientesCuenta;
char estado;
Я объявил эти векторы, с которыми буду работать
vector<stPersona> clientes;
vector<stCuentaBancaria> cuentas;
И это код, который я использую, чтобы перебрать структуры и проверить, существует ли уже человек в записи.
for( vector<stPersona>::iterator it = clientes.begin(); !existe && it != clientes.end(); ++it )
{
existe = cedula.compare( (*it).cedula ) == 0 ;
if ( existe )
{
cout << "NOMBRE :" << (*it).nombre << '\n'
<< "APELLIDO :" << (*it).apellido << '\n'
<< "CEDULA :" << (*it).cedula << '\n'
<< "FECHA DE NACIMIENTO DD/MM/AAAA:\n"
<< "DIA: " << (*it).fechaNacimiento.dia << '\n'
<< "MES: " << (*it).fechaNacimiento.mes << '\n'
<< "A\xA5O: " << (*it).fechaNacimiento.ano << '\n'
<< "ESTADO: "<< (*it).estado << '\n';
}
Я вижу, что, хотя fechaNacimiento
являетсяstruct Я могу легко получить доступ к данным в этой структуре, потому что это не вектор.
С другой стороны, прежде чем добавить новую учетную запись в вектор cuentas
, мне нужно проверить, является ли идентификатор или cedula
зарегистрирован в данных моего клиента clientes
.поэтому я использую следующий код, чтобы найти, существует ли запись.
stCuentaBancaria cuenta;
cout << "CEDULA DEL CLIENTE: ";
cin >> cedula;
bool existe = false;
for ( vector<stPersona>::iterator it = clientes.begin(); !existe && it != clientes.end(); ++it )
{
existe = cedula.compare( (*it).cedula ) == 0;
if ( existe )
{
cuenta.clientesCuenta.push_back((*it));
}
С моей точки зрения, предполагается скопировать найденную в clientes
запись типа stPersona
в clientesCuenta
, которая также является структурой stPersona
внутри структуры stCuentas
, котораявыступает за банковские счета.пока я не получаю ошибок.
Но здесь я не вижу, как заставить все работать на меня ...
Я хочу просмотреть записи и когда он найдет нужную запись дляотображать данные в записи, но когда я это сделал, как и раньше с итератором клиентов clientes
, этот не работает.Он содержит вектор внутри, он дает мне ошибку
cout<<"\n\n2.CONSULTA POR CUENTA\n";
string cuenta;
cout << "INTRODUCIR CUENTA A CONSULTAR .:";
cin >> cuenta;
bool existe = false;
for( vector<stCuentaBancaria>::iterator it = cuentas.begin(); !existe && it != cuentas.end(); ++it )
{
existe = cuenta.compare( (*it).numeroCuenta ) == 0 ;
if ( existe )
{
cout << "NUMERO DE CUENTA :" << (*it).numeroCuenta << '\n'
<< "NOMBRE OFICIAL DE CUENTA :" << (*it).nombreOficialBancario << '\n'
<< "TOTAL DEBITO : " << (*it).totalDebito << '\n'
<< "TOTAL CREDITO: " << (*it).totalCredito << '\n'
<< "ESTADO: "<< (*it).estado << '\n'
<< "TUTORIALES DE CUENTA: " << (*it).clientesCuenta << '\n';
}
Я пытался использовать (*it).clientesCuenta
, но это векторная структура stPersonas
внутри вектора cuentas
, ранее объявленного.
Iне знаю, как мне получить доступ к отображению этих данных или как получить доступ к их изменению в будущем, если я их найду.
Пожалуйста, помогите.
дополнительное примечание : Я получаю доступ к этим данным через функции
int manejoCuentas(vector<stCuentaBancaria> &cuentas,vector<stPersona> &clientes, int &opcionMenu)
И вот как я отправляю данные из основной функции
manejoCuentas(cuentas, clientes, opcion);
Мой английский не очень хорош, спасибо, что прочитали это илюбая помощь будет приветствоваться