字串反轉(reverse實現)
阿新 • • 發佈:2019-02-01
題目描述
寫出一個程式,接受一個字串,然後輸出該字串反轉後的字串。
輸入例子
abcd
輸出例子
dcba
程式碼
#include<iostream>
#include<vector>
#include<string>
#include<algorithm>
using namespace std;
int main()
{
string input;//輸入字串
getline(cin, input);
vector<char>arr;
for (int i = 0; i < input.length(); ++i) {//將字串存入容器
arr.push_back(input[i]);
}
reverse(arr.begin(), arr.end());//翻轉字串
for (vector<char>::iterator it = arr.begin(); it !=arr.end(); ++it) {
cout << *it;
}
cout <<endl;
system("pause");
return 0;
}
註釋
reverse函式
#include<algorithm>
reverse(vec.begin (),vec.end());//將元素翻轉
vector擴充套件知識
1.使用sort排序
#include<algorithm>
sort(vec.begin(),vec.end());//預設是按升序排列,即從小到大
可以通過重寫排序比較函式按照降序比較,如下:
定義排序比較函式:
bool Comp(const int &a,const int &b)
{
return a>b;
}
sort(vec.begin(),vec.end(),Comp);//呼叫時降序排序
2.vector的一些基本操作
使用迭代器訪問元素
vector <int>::iterator it;
for(it=vec.begin();it!=vec.end();it++)
cout<<*it<<endl;
插入元素
vec.insert(vec.begin()+i,a); 在第i+1個元素前面插入a
刪除元素
vec.erase(vec.begin()+2); 刪除第3個元素
vec.erase(vec.begin()+i,vec.end()+j); 刪除區間[i,j-1],區間從0開始
向量大小
vec.size();
清空
vec.clear();