1.++i跟i++哪个效率更高
是++i,因为i++的话,编译器会创建一个临时变量,然后把临时变量带入到后面的运算,然后将临时变量计算得到的结果在+1。而++i,直接将i带入运算,再将i得到的结果+1。
2.vector和数组有什么区别
两个都是会分配一段连续的内存,但是数组一旦分配,长度大小不能改变,一次性分配内存,分配在栈内存上。而vector可以不断的增加删除元素,可以动态分配内存,分配在堆内存上,效率要比数组低一些。vector会不断申请释放内存,比如一旦原来申请内存段大小不满足了,会重新申请一个两倍的连续内存重新存储数据。
3.extern关键词有什么用
一个数据只能定义一次,但可以声明很多次,如果你想声明但不想定义的话就可以,比如很多个文件都要用到一个数据,就可以在一个文件里定义再再其他文件里声明
4.碰到一个很大的数字怎么处理
上次华为机试碰到就是,一个小于一万亿的数字怎么搞,但是那OJ平台是用的VS2005的核,因为long long类型还是C++11才有的类型,所以没办法用。所以数字很大的话,输入要当成字符串处理,一直到快结束才想到,少年我果然还是太年轻。
5.iostream和cin到底是怎么回事
说到底,其实所谓的流,就是一个字符序列,文件序列而已,你在键盘上输入一串数据后,按下回车,你输入的的数据就会从键盘流向内存,这就是一个字符流,然后内存会为这个字符流开辟一段内存缓冲区,用来存放流中的数据。流是与内存缓冲区相对应的,或者说,缓冲区中的数据就是流。而cin>>则是从缓冲区里获取数据,而不是直接从键盘里获取数据。当cin>>从缓冲区里获取数据是,碰到输入流中的空格、tab键、换行符等空白字符。遇到这些字符,该行数据输入结束,cin>>就当做取一次数据了。