2017-01-18 8 views
0

私はいくつかのコードをコーディングしていましたが、問題が発生しました。 キューに配列を挿入する方法はありますか? 配列1のすべての要素を印刷する必要があります....私は一例でご説明与える配列をキューに格納する方法は?

array1[9]={1,3,4,2,1,2,3,4,1} 
array2[9]={2,3,4,2,4,2,2,2,3} 

//create a queue (I don't know how to declare a queue for this issue)... 

queue.push(array1); 
queue.push(array2); 
//############################## 
//when I print queue.front()... 
//######################## 
printf("%d",queue.front()); 

上記のスニペットをしましょう!どのようにそれを行うことができますか?

+2

この質問では、「c」または「C++」のいずれかを選択する必要があります。両方とも全く異なる言語です。 – RoadRunner

+1

キューのチュートリアルを見てください:http://www.dreamincode.net/forums/topic/57487-stl-queues/ – DyZ

+4

'キュー< vector>'を使ってはいけませんか? –

答えて

1

:-)お好みの検索エンジンに正確にそれを検索します。

std::array<int, 9> array1 = { 1, 3, 4, 2, 1, 2, 3, 4, 1 }; 
std::array<int, 9> array2 = { 2, 3, 4, 2, 4, 2, 2, 2, 3 }; 

std::queue<std::array<int, 9>> queue; 

queue.push(array1); 
queue.push(array2); 

for (auto i : queue.front()) { 
    std::cout << i; 
} 
+0

Thanks Joseph !!しかし、正面アレイ1をポップしたい場合は同じですか? Queue.pop()を書くと、配列から配列を削除する必要があります!!上記と同じですか? –

+0

@BharathM 'pop()'は要素を削除しませんが、 'front()'は要素を削除しません。 'front()'は要素への参照だけを返します。 –

+0

@BharathMこの回答で何が間違っていましたか? –

0

これはあまりに簡単な答えです。あなたが動的配列のサイズが必要な場合は、ちょうどあなたの代わりにCスタイルの配列のstd::arrayを使用する場合、それは簡単です

int array1[9]={1,3,4,2,1,2,3,4,1}; 
int array2[9]={2,3,4,2,4,2,2,2,3}; 
std::vector<int> a1(9); 
std::vector<int> a2(9); 
for(int i =0; i< 9;i++){   
    a1[i]=array1[i]; 
    a2[i]=array2[i];// <= a2[i] should take values from array2[i] 
} 
std::queue<std::vector<int>> queue;  
queue.push(a1); 
queue.push(a2); 
//std::cout<<queue.size()<<std::endl; 
std::vector<int> temp(9); 
int size =queue.size(); 
for(int i =0; i< size;i++){   
    temp=queue.front(); 
    std::cout<<"Array["<<i<<"]: "; 
    for(int j =0; j< temp.size();j++) 
     std::cout<<temp[j]<<","; 
    std::cout<<std::endl; 
    queue.pop(); 
} 
関連する問題