[解決済み] C++でクラスオブジェクトのベクトルを作成する方法は?
質問
C++でvectorを使った簡単なスタックを作ろうとしています。
以下はそのコードです。
#include <vector>
class Site
{
public:
int i; // site position i (x-axis)
int s; // site state
vector<Site> neighbors;
Site(void);
Site(int ii, int ss);
void AddNeighbor(Site &site);
};
Site::Site()
{
i = -1;
s = -1;
vector<Site> neighbors;
}
Site::Site(int ii, int ss)
{
i = ii;
s = ss;
}
void Site::AddNeighbor(Site &site)
{
neighbors.push_back(site);
}
void testStack()
{
int tot = 600;
vector<Site> myStack();
int i = 0;
while (i < tot)
{
Site site(i, 1);
myStack.push_back(site);
i++;
}
i = 0;
while (i < tot)
{
Site *site = myStack.back();
myStack.pop_back();
cout << site->i << site->s << endl;
i++;
}
}
コンパイラーエラーです。
ising_wolff.cpp: 関数 'void testStack()'において。 ising_wolff.cpp:373:17: error: request for member 'push_back' in'. 'myStack' は、クラス型でない 'std::vector()' である。 myStack.push_back(サイト)。 ^ ising_wolff.cpp:380:30: error: request for member 'back' in 'myStack', which is non-class type 'std::vector()'. サイト *site = myStack.back(); ^ ising_wolff.cpp:381:17: error: request for member 'pop_back' in 'myStack', which is non-class type 'std::vector()'です。 myStack.pop_back()。
これらのエラーは何を意味するのでしょうか?
以下は、私が見たサイトです。
どのように解決するのですか?
vector<Site> myStack();
これは実際には関数宣言です。この関数は
myStack
を返し
vector<Site>
. 実際に欲しいのは
vector<Site> myStack;
のタイプは
neighbours
は、現時点では参照ではなくオブジェクトのコピーを保存します。もし本当に参照を格納したいのであれば、私は
std::reference_wrapper
(ポインターを使用するのではなく)
vector<reference_wrapper<Site>> neighbors;
関連
-
[解決済み] テスト
-
[解決済み】C++ クラスヘッダが含まれているときに「不明な型」があるのはなぜですか?重複
-
[解決済み】識別子 "string "は未定義?
-
[解決済み] error: 'ostream' does not name a type.
-
[解決済み】致命的なエラー LNK1169: ゲームプログラミングで1つ以上の多重定義されたシンボルが発見された
-
[解決済み] 文字列の単語を反復処理するにはどうすればよいですか?
-
[解決済み] 変数を参照渡しする方法を教えてください。
-
[解決済み] 割り当て後にリストが予期せず変更されました。その理由と防止策を教えてください。
-
[解決済み] 1ビットのセット、クリア、トグルはどのように行うのですか?
-
[解決済み] std::vector にある項目が存在するかどうかを調べるには?
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】Visual Studio 2015で「非標準の構文; '&'を使用してメンバーへのポインターを作成します」エラー
-
[解決済み】C++でユーザー入力を待つ【重複あり
-
[解決済み】テンプレートの引数1が無効です(Code::Blocks Win Vista) - テンプレートは使いません。
-
[解決済み] 非常に基本的なC++プログラムの問題 - バイナリ式への無効なオペランド
-
[解決済み】デバッグアサーションに失敗しました。C++のベクトル添え字が範囲外
-
[解決済み】浮動小数点例外エラーが発生する: 8
-
[解決済み】エラー:strcpyがこのスコープで宣言されていない
-
[解決済み】C++ - 適切なデフォルトコンストラクタがない [重複]。
-
[解決済み] 変数サイズのオブジェクトが初期化されないことがある c++
-
[解決済み] ベクターに追加しながらオブジェクトを作成するには?