📄 bagwithreceipts.cpp
字号:
//implement file--BagWithReceipts.cpp//Assignment_01#include "Receipts.h"#include <iostream>using namespace std;typedef int Item;BagWithReceipts::BagWithReceipts(size_t initial_capacity){ data = new Item[initial_capacity]; in_use = new bool[initial_capacity]; used = 0; capacity = initial_capacity;}BagWithReceipts::BagWithReceipts(const BagWithReceipts &source){ data = source.data; in_use = source.in_use; used = source.used; capacity = source.capacity;}BagWithReceipts::~BagWithReceipts(){ delete [] data; delete [] in_use;}void BagWithReceipts::resize(size_t new_capacity){ if(new_capacity < capacity) { cout<<"New capacity is too less"<<endl; exit(0); } Item *t_data; t_data = new Item[capacity]; for(int i = 0; i<capacity;i++) { t_data[i] = data[i]; } delete [] data; data = new Item[new_capacity]; for(int j = 0; j<capacity;j++) { data[j] = t_data[j]; } bool *t_in_use; t_in_use = new bool[capacity]; for(int k = 0; k<capacity;k++) { t_in_use[k] = in_use[k]; } delete [] in_use; in_use = new bool[new_capacity]; for(int l = 0; l < capacity;l++) { in_use[l] = t_in_use[l]; } capacity = new_capacity;}int BagWithReceipts::insert(const Item &entry){ data[used] = entry; used++; int receipt = used; return receipt;}void BagWithReceipts::remove(const Item &target){ for(int a = 0; a < used; a++) { if(data[a] == target) { data[a] = NULL; } }}void BagWithReceipts::remove_by_receipt(int receipt){ data[receipt] = NULL;}void BagWithReceipts::operator =(const BagWithReceipts &source){ data = source.data; in_use = source.in_use; used = source.used; capacity = source.capacity;}size_t BagWithReceipts::occurrences(const Item &target) const{ int counter; for(int b = 0; b < used; b++) { if(data[b] == target) { counter++; } } return counter;}bool BagWithReceipts::using_receipt(int receipt) const{ if(data[receipt] != NULL) return true; return false;}Item BagWithReceipts::retrieve(int receipt) const{ if(using_receipt(receipt) == true) return data[receipt]; return NULL;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -