解题思路:
向量 vector 是一种对象实体, 能够容纳许多其他类型相同的元素, 因此又被称为容器。 与string相同, vector 同属于STL(Standard Template Library, 标准模板库)中的一种自定义的数据类型, 可以广义上认为是数组的增强版。
在使用它时, 需要包含头文件 vector, #include<vector>,当然你也可以使用bits/stdc++.h这种万能头文件。
vector 容器与数组相比其优点在于它能够根据需要随时自动调整自身的大小以便容下所要放入的元素。此外, vector 也提供了许多的方法来对自身进行操作。
首先是初始化,vector的申明格式为 vector<data-type> name
vector<int> a ; //声明一个int型向量a
vector<int> a(10) ; //声明一个初始大小为10的向量
vector<int> a(10, 1) ; //声明一个初始大小为10且初始值都为1的向量
vector<int> b(a) ; //声明并用向量a初始化向量b
vector<int> b(a.begin(), a.begin()+3) ; //将a向量中从第0个到第2个(共3个)作为向量b的初始值
注意,由于是可变长的数组,所以在直接创建的时候不写长度可以让其自由按照数据的量的多少来划分,这一个特性对以后的竞赛写代码非常有用。
在输入的时候完全可以 vector<int> a(3); cin>>a[0];cin>>a[1];cin>>a[2];这样完成,但是这样的输入会修改原本的值,我们可以利用其封装的接口a.push_back(10) //把10添加到尾部 ,这样完全不必访问其先的内容,直接尾部添加,高效又快捷。
这里copy一些常用的接口(操作)【来自CSDN】
int len = a.size(); //返回vector长度
a.resize(100); //把a长度变为100
a.push_back(10); //把10添加到尾部
a.pop_back(); //删除最后一个元素
a.clear(); //清除a
bool is_kong = a.empty();//判断a是否空
我们在本题目中,直接定义一个char类型的vector容器,然后再定义一个字符(char),按需要输入并判断输出即可
参考代码:
#include<bits/stdc++.h> using namespace std; int main() { vector<char> a; char b; while(1){ if(scanf("%c",&b)==EOF){ break; } if(b=='a'||b=='e'||b=='i'||b=='o'||b=='u') { a.push_back(b); } } for(int i=0;i<a.size();i++){ printf("%c",a[i]); } printf("\n"); return 0; } /*本题为dotcpp1033号问题*/
0.0分
0 人评分
C语言网提供由在职研发工程师或ACM蓝桥杯竞赛优秀选手录制的视频教程,并配有习题和答疑,点击了解:
一点编程也不会写的:零基础C语言学练课程
解决困扰你多年的C语言疑难杂症特性的C语言进阶课程
从零到写出一个爬虫的Python编程课程
只会语法写不出代码?手把手带你写100个编程真题的编程百练课程
信息学奥赛或C++选手的 必学C++课程
蓝桥杯ACM、信息学奥赛的必学课程:算法竞赛课入门课程
手把手讲解近五年真题的蓝桥杯辅导课程
发表评论 取消回复