芽芽最近剛學會怎麼實作 vector(也就是「神祕的動態陣列」),他迫不及待地想要在 OJ 上面嘗試看看,但是在茫茫題海當中找題目實在太麻煩,於是芽芽決定出一題簡單的題目,內容如下:
題目會給很多很多的數字,然後要你把每個數字讀進來之後把它們反過來輸出。
也就是說,當題目給你 1 2 3,你就要回答 3 2 1。
很有趣對吧?
芽芽心想這應該很簡單,沒想到現在卻卡關了 QwQ
於是他找上了同班的你,希望你可以告訴他該怎麼做。當然,芽芽也不是沒有思考過就來求答案的,他已經做好了一個基本的 vector 架構,接下來你只需要協助他完成這個架構就可以了!
程式架構如下:
#include <iostream>
using namespace std;
class vector {
public:
vector() {
buffer = new int[1];
capacity = 1;
size = 0;
}
// push one item into vector's back
void push_back(int item);
// pop one item from vector's back
void pop_back();
// return whether the size of vector is zero
bool empty();
// return a pointer points to vector's last item
int last();
private:
int* buffer;
int capacity;
int size;
};
// 你的 code 會放在這裡
int main() {
vector v;
int n;
while (cin >> n) {
v.push_back(n);
}
while (!v.empty()) {
cout << v.last();
v.pop_back();
if (!v.empty()) cout << " ";
}
return 0;
}
輸入一行包含多個數字,每個數字之間以空格分隔,且皆在 int 範圍內。
數字的總量不會超過 $10 ^ 6$。
輸入的部分芽芽已經處理好了,不需擔心。
輸出的部分芽芽也已經處理好了,不需擔心。
要定義的函式就像下面這樣:
#include "lib0609.h"
bool vector::empty() {
// 開始實作 empty
}
依此類推,完成 push_back、pop_back、empty、last 四個成員函式即可。
NEOJ Problem 1146
No. | Testdata Range | Constraints | Score |
---|---|---|---|
1 | 0~9 | 100 |