解题思路:
向量 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 人评分
2003年秋浙江省计算机等级考试二级C 编程题(2) (C语言代码)浏览:729 |
震宇大神的杀毒软件 (C++代码)浏览:1173 |
分糖果 (C++代码)浏览:1537 |
C语言程序设计教程(第三版)课后习题4.9 (C语言代码)浏览:1555 |
淘淘的名单 (C语言代码)答案错误???浏览:624 |
C语言程序设计教程(第三版)课后习题6.8 (C语言代码)浏览:798 |
C语言程序设计教程(第三版)课后习题7.3 (C语言代码)浏览:1215 |
WU-字符串比较 (C++代码)浏览:824 |
用筛法求之N内的素数。 (C语言代码)浏览:890 |
C语言程序设计教程(第三版)课后习题8.8 (C语言代码)浏览:895 |