c++ - STL如何使构造10个不同的队列
高洛峰
高洛峰 2017-04-17 14:46:23
0
2
579

如下列代码,

#include <iostream>
#include <queue>

int main() {
    queue<int>* queue_list[10];
    for (int l = 0; l <  10; ++l) {
        queue<int> queue;
        queue_list[l] = &queue;
    }
    for (int i = 0; i < 10; ++i) {
        cout << queue_list[i] << endl;
    }
}

我循环初始化了10个队列,可是我打印出来发现是同一个地址,会互相影响;请问如何可以让10个队列互相独立。

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全員に返信(2)
伊谢尔伦

queue は、for ループ内で宣言されています。ループ queue が同じ場所に作成されるたびに、 それは破棄されます。したがって、常に同じアドレスが取得されます。ループを終了すると、すべての queue が存在しなくなります。 queue_list[] 内のポインタはすべて不正です。

これらの queue をスタック上に作成したい場合は、queue<int> queue_list[10] を使用します。

いいねを押す +0
迷茫

このように書くのはループ内で繰り返し宣言することであり、キューはスタック上のすべて同じオブジェクトです。新しいものをヒープに置くには

#include 
#include 

int main() {
    std::queue<int>* queue_list[10];
    for (int l = 0; l 
いいねを押す +0
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート