Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/145.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/backbone.js/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 书架数据结构问题_C++_Vector_Data Structures - Fatal编程技术网

C++ 书架数据结构问题

C++ 书架数据结构问题,c++,vector,data-structures,C++,Vector,Data Structures,我正在制作一个宽度为s的书架(1cin>>var>>my_book.id>>my_book.w要求用户输入三件事:一个字符和两个整数。在检查并执行var中的操作之前,必须输入所有三件事 #include <iostream> #include <vector> using namespace std; struct book{ int id; int w; }; int main(){ //std::vector::~vector //cre

我正在制作一个宽度为s的书架(1
cin>>var>>my_book.id>>my_book.w
要求用户输入三件事:一个字符和两个整数。在检查并执行
var
中的操作之前,必须输入所有三件事

#include <iostream>
#include <vector>

using namespace std;

struct book{
    int id;
    int w;
};

int main(){
//std::vector::~vector
    //create instance of book
    book my_book;
    //initialize the placeholders
    int s, removed_book, back_width;
    char var;
    //create the vector 
    vector<book>shelf;
    while(true){
        //enter the s value 
        s = 0;
        cout << "enter the s value: " << endl;
        cin >> s;
        int w_total = 0;

        //be able to exit the program
        if(s == -1){
            return 0;
        }
        int x = 1;
        //while remaining space
        while(x!=0){              //need to fix this up

            cout << "enter the action(A,R,E): " << endl;
            cin >> var >> my_book.id >> my_book.w;


            //if A
            if(var == 'A'){
                //get info about the book
                /*
                cout << "enter id: " << endl;
                cin >> my_book.id;
                cout << "width(w): " << endl;
                cin >> my_book.w;
                */
                w_total += my_book.w;
                shelf.insert(shelf.begin(),my_book);
                cout << "total width(1): " << w_total << endl;

                if(w_total > s){
                    while(w_total >= s){
                        //remove the rightmost(back) book
                        w_total = w_total - shelf.back().w;
                        cout << "total width(2): " << w_total << endl;
                        shelf.erase(shelf.end()-1);
                    }
                }
            }
            //if R
            else if(var == 'R'){
                //cout << "which book to be removed? : " << endl;
                //cin >> removed_book;
                removed_book = my_book.id;
                for(int i = 0; i < s; i++){
                    if(shelf[i].id == removed_book){
                        shelf.erase(shelf.begin()+i);      
                    }
                }
            }
            //if E
            else if(var == 'E'){
                cout << "remaining books on shelf: " << endl;
                for(int i = 0; i < shelf.size(); i++){
                    if(shelf[i].id!=0){
                        cout << "id: "<<shelf[i].id << endl;
                    }   
                }
                //maybe put the display in here?
                x = 1;  
            }
        }
        //print out the remaining shelf

        shelf.clear(); 
        //erase the shelfs(vectors) contents
        //increase problem number
    }
return 0;
}
10(shelf width)
A 1 3(Add id width)
A 2 5
E
-->PROBLEM 1: 2 1