我做了一个队列管理系统并创建了一个函数来添加两个队列
I made a queue management system and created a function to add two queues
这是我的代码。我创建了使用操作重载添加两个队列的函数。对于某些共鸣,它总是 return 是空的
#include <iostream>
using namespace std;
class Queue {
int size;
int* queue;
public:
Queue() {
size = 0;
queue = new int[100];
}
//adds an item to the queue`enter code here`
void add(int data) {
queue[size] = data;
size++;
}
//removes an item from the queue
void remove() {
if (size == 0) {
cout << "Queue is empty"<<endl;
return;
}
else {
for (int i = 0; i < size - 1; i++) {
queue[i] = queue[i + 1];
}
size--;
}
}
// a function to display the queue
void print() {
if (size == 0) {
cout << "Queue is empty"<<endl;
return;
}
for (int i = 0; i < size; i++) {
cout<<queue[i]<<" <- ";
}
cout << endl;
}
这是添加队列的功能。这不是 returning 错误。但是每当我尝试添加队列时,它总是 return 一个空队列。可能是什么问题
Queue operator+(Queue &obj){
Queue res;
res.queue = *queue + obj.queue;
return res;
}
};
这里开始主要功能。
int main() {
Queue q1;
q1.add(42); q1.add(2); q1.add(8); q1.add(1);
Queue q2;
q2.add(3); q2.add(66); q2.add(128); q2.add(5);
Queue q3 = q1+q2;
q3.print();
return 0;
}
您的代码应该做这样的事情。这段代码不会赢得任何风格奖,我只是想告诉你需要什么
Queue operator+(Queue &obj){
Queue res;
res.size = size + obj.size; // work out the new queues size
res.queue = new int[100]; // allocate memory for new queue
for (int i = 0; i < size; ++i) // copy from first queue to new queue
res.queue[i] = queue[i];
for (int i = 0; i < obj.size; ++i) // copy from second queue to new queue
res.queue[size + i] = obj.queue[i];
return res;
}
正如我所说,这段代码以及您编写的其他代码存在各种问题。但希望它能让您了解需要做什么。
这是我的代码。我创建了使用操作重载添加两个队列的函数。对于某些共鸣,它总是 return 是空的
#include <iostream>
using namespace std;
class Queue {
int size;
int* queue;
public:
Queue() {
size = 0;
queue = new int[100];
}
//adds an item to the queue`enter code here`
void add(int data) {
queue[size] = data;
size++;
}
//removes an item from the queue
void remove() {
if (size == 0) {
cout << "Queue is empty"<<endl;
return;
}
else {
for (int i = 0; i < size - 1; i++) {
queue[i] = queue[i + 1];
}
size--;
}
}
// a function to display the queue
void print() {
if (size == 0) {
cout << "Queue is empty"<<endl;
return;
}
for (int i = 0; i < size; i++) {
cout<<queue[i]<<" <- ";
}
cout << endl;
}
这是添加队列的功能。这不是 returning 错误。但是每当我尝试添加队列时,它总是 return 一个空队列。可能是什么问题
Queue operator+(Queue &obj){
Queue res;
res.queue = *queue + obj.queue;
return res;
}
};
这里开始主要功能。
int main() {
Queue q1;
q1.add(42); q1.add(2); q1.add(8); q1.add(1);
Queue q2;
q2.add(3); q2.add(66); q2.add(128); q2.add(5);
Queue q3 = q1+q2;
q3.print();
return 0;
}
您的代码应该做这样的事情。这段代码不会赢得任何风格奖,我只是想告诉你需要什么
Queue operator+(Queue &obj){
Queue res;
res.size = size + obj.size; // work out the new queues size
res.queue = new int[100]; // allocate memory for new queue
for (int i = 0; i < size; ++i) // copy from first queue to new queue
res.queue[i] = queue[i];
for (int i = 0; i < obj.size; ++i) // copy from second queue to new queue
res.queue[size + i] = obj.queue[i];
return res;
}
正如我所说,这段代码以及您编写的其他代码存在各种问题。但希望它能让您了解需要做什么。