Мне интересно, почему это не признает, что вектор пуст и снабжен вектором pStack с двойным запуском? Объект программы просто просто поставить вектор стека с 50 в первый раз, когда он пуст. Затем, как только он будет отправлен с начальной суммой, он должен вычесть с помощью пользовательского ввода (ставка). Тогда, так как его вектор переносит старую сумму во второй раз, поэтому ее можно вычесть с помощью пользовательского ввода ставки снова.Почему не пустой вектор?
#include <iostream>
#include <string>
#include <vector>
using namespace std;
class Bet
{
public:
void set_stack(double n);
void set_bet(double n);
double analyze();
double get_stack();
double get_bet();
private:
double pCount;
double bet;
};
double Bet::analyze()
{
double p = pCount;
double b = bet;
double z = p - b;
return z;
}
void Bet::set_bet(double n)
{
bet = z;
}
double Bet::get_bet()
{
return bet;
}
void Bet::set_stack(double n)
{
pCount = n;
}
double Bet::get_stack()
{
return pCount;
}
double start = 50; // Start needs to go inside of pStack
double bbet;
vector<double> pStack(1);
int main()
{
bool con = true;
while(con){
if(pStack.empty()){
pStack.push_back(start); // pStack should be supplied with start when empty
}
double adjst = pStack[0];
Bet rr;
rr.set_stack(adjst);
pStack.clear();
cout << "Enter min 1 Bet: ";
cin >> bbet;
rr.set_bet(bbet);
double aStack = rr.analyze();
pStack.push_back(aStack);
rr.set_stack(aStack);
double newStack = rr.get_stack();
cout << "Stack: " << newStack << endl;
cout << "Bet: " << bbet << endl;
}
system("pause");
return 0;
}
Отсутствие отступов делает его более трудным, чем это необходимо, чтобы прочитать код. –
Вы явно создаете непустой вектор, а затем спрашиваете людей, почему он не пуст ... Почему вы использовали этот '(1)' в качестве инициализатора для вашего 'pStack'? – AnT