1.一维数组
#include "stdafx.h"
#include <iostream>
#include <vector>
using namespace std;
int _tmain(int argc, _TCHAR* argv[])
{
int num;
cin >> num;
vector<int> nums;
int temp_num;
for (int i = 0; i < num; i++)
{
cin >> temp_num;
nums.push_back(temp_num);
}
return 0;
}
2.二维数组
#include "stdlib.h"
#include <iostream>
#include<vector>
#include <iomanip>
using namespace std;
int main()
{
int m, n;
//cout << "请输入行和列:";
cin >> m >> n;
//注意下面这一行:vector <int后两个 "> "之间要有空格!否则会被认为是重载 "> > "。
vector<vector<int> > p(m, vector<int>(n));
//cout << "请输入数据:";
for (int i = 0; i < m; i++)
for (int j = 0; j < n; j++)
cin >> p[i][j];
//cout << "输出数据:" << endl;
for (int i = 0; i < m; i++)
{
for (int j = 0; j < n; j++)
cout << p[i][j];
cout << endl;
}
system("pause");
return 0;
}
3.字符串
输入不带空格的字符串
char str[30];
cin>>str;
for(int i=0;i<5;i++){
cout<<str[i];
}
输入带空格的字符串
char str[30];
cin.getline(str,len);//读入整行数据,它使用回车键输入的换行符来确定输入结尾。
//cin.get(str,len);//这个还会保留换行符
输入字符串
string str;
getline(cin,str);
#include <iostream>
#include <vector>
using namespace std;
/**
题意:存在一根电线杆,可以是第一根或者最后一根,在该电线杆前的电线杆的高度是不增的,
在它之后的电线杆的高度是不减的,请求出最少需要调整多少根电线杆的高度、输入n+1行
第一行整数n表示电线杆数剩下n行表示电线杆的高度
10
6 3 4 3 3 4 5 5 4 6
输出2
注意是存在,至少调整的数量、
*/
/**
*解题思路:就是就是从左标记不满足非递减的数据,从右到左标记不满足非递减的数,
* 然后统计i处不满足条件的标记数放在数组中,然后去其中的最小的数。
*/
int adjustcount(int n,vector<int> a)
{
vector<int> dec;
vector<int> inc;
int low=a[0]; //参考值
for(int i=1;i<n;i++){
if(a[i]>low){
dec.insert(dec.begin()+i,1);
}else{
low=a[i];
}
}
low=a[n-1];
for(int j=n-2;j>-1;j--){
if(a[j]>low)
{
inc.insert(inc.begin()+j,1);
}else{
low=a[j];
}
}
vector<int> res;
for(int i=0;i<n;i++){
int sum1=0;
int sum2=0;
//计算不满足要求的电线杆需要移动的根数
for(int k=0;k<i;k++){
sum1 +=dec[k];
}
for(int m=i+1;m<n;m++){
sum2 +=inc[m];
}
res.insert(res.begin()+i,sum1+sum2);
}
int min=res[0];
//遍历输出最小值
for(int i=0;i<n;i++){
if(min>res[i]){
min=res[i];
}
}
return min;
}
int main(int argc, char *argv[])
{
int num;
cin>>num;
int linehight;
vector<int> nums;
for(int i=0;i<num;i++){
cin>>linehight;
nums.push_back(linehight);
}
int min=adjustcount(num,nums);
cout<<min;
// cout << "Hello World!" << endl;
return 0;
}