C++基础1:初学笔记

1.对于字符串str,如何测量字符串的长度?
答:len = str.size();
2.对于字符串str,如何取出字符串中的第i个字符?
答:char = str[i-1];
3.如何得知一个数的“位数个数”为偶数还是为奇数?如8为奇,4589为偶
答:用log10()函数:if((int)log10(nummber)&1==1)return …;
4.如何在ptr后添加新成员“100”?其中vector ptr;
答:ptr.push_back(100);
5.如何将字符串中的某一种字符替换成其他的字符或字符串?
答:address.replace(_, _, _); 如图
在这里插入图片描述
6.c++程序中怎样表示10的x次方?
答:pow(10,x);
注:不能用10^x的形式!
7.面向对象的特性有几个?分别是什么?
答:面向对象特性有3个,分别是:封装继承多态
8.STL六大组件分别是什么?
答:容器算法迭代器仿函数适配器(配接器)空间配置器在这里插入图片描述
9.如何将vector v;的v1中的数据转换到set s中?
答:set s(v.befin(),v.end());
10.如何求两个数组的交集?
答:使用set_intersection();函数
11、2的n次幂是如何存储的?

2^0>	1
2^1>	10
2^2>	100	//几次幂后面就有几个0
2^3>	1000
2^4>	10000
2^5>	100000

12、2^n-1是如何存储的?

2^0-1>	
2^1-1>	1
2^2-1>	11	//几次幂后面就有几个1
2^3-1>	111
2^4-1>	1111
2^5-1>	11111

13、auto是什么意思?怎么用?
答:让我们看一个例子,auto关键字。在C++11中,假如编译器可以从变量的初始化中得到它的类型,那么你不必要指定类型。比如,你可以这样写:

int x = 3;
auto y = x;

编译器可以推导出y的类型是int。当然,这不是一个证明auto有用的一个闪亮的例子。当使用模板特别是STL时auto很好用。为什么这么说,想象使用一个迭代器(iterator):

map<string, string> address_book;
address_book["Alex"] = "[email protected]";
//add a bunch of people to address_book

现在你想遍历address_book中的元素,要这样做,你需要一个迭代器:

map<string, string>::iterator iter = address_book.begin();

这是一个恐怖的长类型声明,当你已经知道这个类型的时候。这样是不是简洁多了:

auto iter = address_book.begin();

代码变得更简单明了,我觉得可读性也更高了,因为模板语法使这一行其它内容变模糊了。这是我特别喜欢的一个特性,我发现它消除了许多头疼和难以追踪的编译错误,节省了时间而没有丢掉表达式的意思。
14、如何给vector < int >类型的A进行从小到大排序?
答:sort(A.begin(),A.end());
如果要给一个数组B的前10位排位,可以这样:
sort(B.begin(),B.begin()+9);
如果要给一个数组C的后10位排位,可以这样:
sort(C.end()-10,C.end());
如果要给一个数组D从第20位到最后一位排序,可以这样:
sort(D.begin()+19,D.end());
15、如何交换int a,b;两个数的值?
答:swap(a,b);
16、一个偶数a/2,怎样增加运算速度?
答:可用高效的右移运算:a>>1
17、怎样创建一个树节点?
答:

/**
 * Definition for a binary tree node.
 * struct TreeNode {
 *     int val;
 *     TreeNode *left;
 *     TreeNode *right;
 *     TreeNode(int x) : val(x), left(NULL), right(NULL) {}
 * };
 */
 TreeNode* root=new TreeNode(1);//创建一个树节点

18、>>和>>>有什么区别?
“>>>”表示不带符号向右移动二进制数,移动后前面统统补0;两个箭头表示带符号移动,没有<<<这种运算符,因为左移都是补零,没有正负数的区别。
如 -12 的二进制为:1111 1111 1111 1111 1111 1111 1111 0100;
-12 >> 3 即带符号右移3位,结果是:1111 1111 1111 1111 1111 1111 1111 1110,十进制为: -2;
-12 >>> 3 就是右移三位,前面补零,为:0001 1111 1111 1111 1111 1111 1111 1110,十进制为:536870910。
19、>>运算符计算正数和负数过程一样吗?
答:不一样!

int8_t  var>0;
var=var>>7;
结果就是:0000 0000
----------------------
int8_t  var<0;
var=var>>7;
结果就是:1111 1111

20、什么是数据结构?数据结构包括哪些?
答:数据结构是指相互之间存在着一种或多种关系的数据元素的集合和该集合中数据元素之间的关系组成 。
常用的数据结构有:数组,栈,链表,队列,树,图,堆,散列表等,如图所示:

每一种数据结构都有着其独特的数据储存方式!
推荐原文链接:https://blog.csdn.net/yeyazhishang/article/details/82353846

原创文章 100 获赞 45 访问量 9万+

猜你喜欢

转载自blog.csdn.net/XL__MAX/article/details/105548813
今日推荐