算法、项目编程中的遇到的困惑(一)
作者:互联网
1. getline的头文件是?(提示找不到函数)
- 事实上问题是getline函数的参数写漏了
解答:
函数在头文件中 getline函数与cin.getline()函数有区别。
一般用法:
string t;
getline(cin,t);
2. 在编程过程中所有的变量最好都初始化
不然都是系统自动分配的数值,一个不小心很容易留下莫名的bug。
3. 程序要求不区分大小写
首先事实上在ASII码上大小写的值肯定是不一样的。如果要求不区分,就得在程序中设计。
- 一、手撸C++代码实现 判断ASII码区间并进行加减实现大小写转换
- 二、用c++的string类库函数 islower()/isupper()能够直接判断大小写,然后用tolower/toupper可以实现大小写转换
- 同理,isdigit()可以判断是否为数字
-
手撸的话:A-Z:65~90 a-z: 97-122 0-9:
4. 查找重复子串
华为一道机考题中隐含了一道这个字符串的小题
- 解答:
5.类成员初始化列表
原以为初始化列表是在实例化的时候使用,其实是在类成员函数声明与实现的时候使用。
class test
{
public:
test():a(0),b(1),c(2)
private:
int a;
int b;
int c;
}
6.做华为机试模拟类的题目时,需要先思考一个好的数据结构
一个好的数据结构很重要。所以如果发现是模拟题的话,最好是先认真思考一下要用
什么自定义的数据结构再动手。
7.程序中要判断同时的否定情况(逻辑上的否定)的话,应该用且还是或?
比如说:
字符为空格 换行都是不想要的
if(input == ‘ ’ || input == ‘\n’)
{
}
ps. 现在脑袋清晰了一点,应该是要用或的 与否不否定情况并无关系。
8.类中声明的vector实例化但不初始化(即默认构造),大小(size)为多少,有无成员?
9.vector clear完之后empty的结果是?
vector是clear不是clean
vector是clear不是clean
vector是clear不是clean
- 结果是clear完之后成员数目会减少,empty的结果也是1(即为空)
#include <iostream>
#include <vector>
using namespace std;
int main()
{
vector<int> a(10,5);
cout << a.size() << endl;
cout <<"empty: " << a.empty() << endl;
a.clear();
cout << a.size() << endl;
cout <<"empty: " << a.empty() << endl;
return 0;
}
测试结果:
10
empty: 0
0
empty: 1
10.题目要求有多行输入的时候如何才能够每行都有处理到?
- 用while(getline(cin,s))
#include <iostream>
#include <vector>
#include <string>
using namespace std;
int main()
{
string in;
while(getline(cin,in));
cout << "finish" << endl;
return 0;
}
结果是他永远在等待读取,不会跳出while(循环)。
也许在算法题中他只评定你的输出有多少,不在乎你的程序是否还在等待
标签:困惑,int,clear,编程,算法,vector,大小写,include,getline 来源: https://www.cnblogs.com/black-worrior-2000/p/16490411.html