ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

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

2022-07-24 14:00:11  阅读:141  来源: 互联网

标签:困惑 int clear 编程 算法 vector 大小写 include getline


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

  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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有