1.vector<string>a(10);定义了10个整形元素的向量 vector<string>a;(不知道多少个这样也行)
vector是向量类型,能容纳许多类型的数据
vector 的创建和初始化
vector作为存放一串数据的容器,在创建和初始化的时候就要考虑数据类型、数据的个数以及数据的值,并且针对这几个属性就可以有几种不同的初始化方式。
vector 的初始化
/注意/#include<iostream>
#include<vector>
using namespace std;
//vector的初始化
int main()
{
vector<int> vec1;
vector<float> vec2(3);
vector<char> vec3(3,'a');
vector<char> vec4(vec3);
return 0 ;
}
例子展示了几种不同的vector的初始化方法。可以看到在4个vector的初始化中,用<>指定了vector中的不同元素类型。
<1> 第一个是空的整形vector,我们没有给他添加任何元素。
<2>第二个初始化了一个有3个元素的vector,由于并没有指定初始 值,将会使用编译器默认的初始值。
<3>第三个初始化了含有3个a的字符vector,括号中第二个值代表着所有元素的指定值。
<4>第四个vector通过拷贝vec3中的元素初始化vec4,它们的元素会一模一样。
a.push_back(x);添加元素
2.字符串可以直接进行比较
7-1 字符串的冒泡排序
我们已经知道了将N个整数按从小到大排序的冒泡排序法。本题要求将此方法用于字符串序列,并对任意给定的K(<N),输出扫描完第K遍后的中间结果序列。
输入格式:
输入在第1行中给出N和K(1≤K<N≤100),此后N行,每行包含一个长度不超过10的、仅由小写英文字母组成的非空字符串。
输出格式:
输出冒泡排序法扫描完第K遍后的中间结果序列,每行包含一个字符串。
输入样例:
6 2
best
cat
east
a
free
day
输出样例:
best
a
cat
day
east
free
#include<bits/stdc++.h>
using namespace std;
#define ll long long
int main()
{
vector<string> a;
int n, k;
cin >> n >> k;
for (int i = 0; i < n; i++)
{
string x;
cin >> x;
a.push_back(x);
}
int count = 0;
for (int i = 0; i < n - 1; i++)
{
for (int j = 0; j < n - 1 - i; j++)
{
if (a[j] > a[j + 1])
{
string temp = a[j];
a[j ] = a[j+1];
a[j+1] = temp;
}
}
count++;
if (count == k)
break;
}
for (int i = 0; i < n; i++)
cout << a[i] << endl;
return 0;
}
/*
#include<bits/stdc++.h>
using namespace std;
#define MAXN 105
int main()
{
string a[MAXN];
int n,k;
cin>>n>>k;
getchar();
int sum=0;
string temp;
for(int i=0;i<n;i++)
{
cin>>a[i];
}
for(int i=0;i<n-1;i++)
{
for(int j=0;j<n-1-i;j++)
{
if(a[j]>a[j+1])
{
temp=a[j];
a[j]=a[j+1];
a[j+1]=temp;
}
}
sum+=1;
if(sum==k)
{
break;
}
}
for(int i=0;i<n;i++)
{
cout<<a[i]<<'\n';
}
return 0;
}*/
3.将整数类型转化为double类型
//num1 = 1.0 * a1/b1;
//num2 = 1.0 * a2/b2; 这两种方法均可实现转化
num1 = (double)a1/b1;
num2 = (double)a2/b2;
4.在结构体里要是比较年龄,可以设为整数看