vector初入門

動態數組初入門(vector)

今天稍微入門了一下動態數組,特別鳴謝博客https://blog.csdn.net/whl_program/article/details/76473947
和菜鳥教程 http://www.runoob.com/w3cnote/cpp-vector-container-analysis.html
今天在PAT上水了一題還有實在有點無聊,寫博客玩玩。

PAT B組1008數組元素循環右移問題

一個數組A中存有N(>0)個整數,在不允許使用另外數組的前提下,將每個整數循環向右移M(≥0)個位置,如果需要考慮程序移動數據的次數儘量少,要如何設計移動的方法?

輸入格式:
每個輸入包含一個測試用例,第1行輸入N(1≤N≤100)和M(≥0);第2行輸入N個整數,之間用空格分隔。

輸出格式:
在一行中輸出循環右移M位以後的整數序列,之間用空格分隔,序列結尾不能有多餘空格。

輸入樣例:
6 2
1 2 3 4 5 6
輸出樣例:
5 6 1 2 3 4

題目意思很明確了,我就不解釋了。不過他指明瞭只能使用一個數組,雖然我之前不會用動態數組,但至少也聽說過,就順便學習了一下動態數組。

#include<bits/stdc++.h> 
using namespace std;

int main()
{
	 int n,m,i,temp=0;
	 cin>>n>>m;
	 if(m>n)
	 do
	 {
	 	m=m-n;
	 }while(m>n);
	 vector <int> arr;
	for(i=0;i<n;i++)
	{
		cin>>temp;
		arr.push_back(temp);
	}
	reverse(arr.begin(),arr.end());//(reverse函數使得數組反轉)
	reverse(arr.begin(),arr.begin()+m);
	reverse(arr.begin()+m,arr.end());
	for(i=0;i<n;i++)
	{
		if(i!=0)
		cout<<" ";
		cout<<arr[i];
	}
    return 0;
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章