bananan_wの日記: ↓間違えてるし 1
日記 by
bananan_w
パッチパッチパッチ!!
あー。駄目駄目過ぎ。
穴があったらずっと入っていたいです(なんか違
$ diff -u 13-3.cpp.old 13-3.cpp
--- 13-3.cpp.old 2005-01-19 19:24:06.000000000 +0900
+++ 13-3.cpp 2005-01-19 19:25:40.000000000 +0900
@@ -26,12 +26,14 @@
class queue {
private:
int count; // キューに格納されているデータ数
- int index; // 次にgetされるデータのインデックス
+ int get_index; // 次にgetされるデータのインデックス
+ int put_index; // 次にputされるデータのインデックス
int data[QUEUE_SIZE];
public:
queue(){
count = 0;
- index = 0;
+ get_index = 0;
+ put_index = 0;
};
// copy constructor : default
// operator = : default
@@ -48,7 +50,13 @@
( count >= static_cast<int>(sizeof(data)/sizeof(data[0])))) {
throw bound_err("Push overflows queue");
}
- data[count] = item;
+ if ( put_index < static_cast<int>(sizeof(data)/sizeof(data[0]))) {
+ data[put_index] = item;
+ put_index++;
+ } else {
+ put_index = 0;
+ data[put_index] = item;
+ }
count++;
}
@@ -61,12 +69,12 @@
(count >= static_cast<int>(sizeof(data)/sizeof(data[0])))){
throw bound_err("Push underflows queue");
}
- if (index < static_cast<int>(sizeof(data)/sizeof(data[0]))){
- value = data[index];
- index++;
+ if (get_index < static_cast<int>(sizeof(data)/sizeof(data[0]))){
+ value = data[get_index];
+ get_index++;
} else {
- index = 0;
- value = data[index];
+ get_index = 0;
+ value = data[get_index];
}
return(value);
}
あー。駄目駄目過ぎ。
穴があったらずっと入っていたいです(なんか違
$ diff -u 13-3.cpp.old 13-3.cpp
--- 13-3.cpp.old 2005-01-19 19:24:06.000000000 +0900
+++ 13-3.cpp 2005-01-19 19:25:40.000000000 +0900
@@ -26,12 +26,14 @@
class queue {
private:
int count; // キューに格納されているデータ数
- int index; // 次にgetされるデータのインデックス
+ int get_index; // 次にgetされるデータのインデックス
+ int put_index; // 次にputされるデータのインデックス
int data[QUEUE_SIZE];
public:
queue(){
count = 0;
- index = 0;
+ get_index = 0;
+ put_index = 0;
};
// copy constructor : default
// operator = : default
@@ -48,7 +50,13 @@
( count >= static_cast<int>(sizeof(data)/sizeof(data[0])))) {
throw bound_err("Push overflows queue");
}
- data[count] = item;
+ if ( put_index < static_cast<int>(sizeof(data)/sizeof(data[0]))) {
+ data[put_index] = item;
+ put_index++;
+ } else {
+ put_index = 0;
+ data[put_index] = item;
+ }
count++;
}
@@ -61,12 +69,12 @@
(count >= static_cast<int>(sizeof(data)/sizeof(data[0])))){
throw bound_err("Push underflows queue");
}
- if (index < static_cast<int>(sizeof(data)/sizeof(data[0]))){
- value = data[index];
- index++;
+ if (get_index < static_cast<int>(sizeof(data)/sizeof(data[0]))){
+ value = data[get_index];
+ get_index++;
} else {
- index = 0;
- value = data[index];
+ get_index = 0;
+ value = data[get_index];
}
return(value);
}
この種の間違いは (スコア:1)
# 昔、画像処理でやらかしたときは画像が真っ白に...