编程语言
首页 > 编程语言> > 算法、项目编程中的遇到的困惑(一)

算法、项目编程中的遇到的困惑(一)

作者:互联网

1. getline的头文件是?(提示找不到函数)

string t;
getline(cin,t);

2. 在编程过程中所有的变量最好都初始化

不然都是系统自动分配的数值,一个不小心很容易留下莫名的bug。

3. 程序要求不区分大小写

首先事实上在ASII码上大小写的值肯定是不一样的。如果要求不区分,就得在程序中设计。

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

#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.题目要求有多行输入的时候如何才能够每行都有处理到?

  1. 用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