C++
秋榆梧桐
用心做每一件平凡的事,做个平凡的人
展开
-
C++中基于范围的for循环使用要点
基于范围的for循环中可通过引用修改数组元素中的值,直接修改只是修改副本,原始数组数据不变。 // 可以看出在for循环中直接修改是不起作用的,原始数组不改变。 int arr[] = { 1,2,3,4}; for (int x : arr) // 没有使用引用 { x = x * 2; // 尝试修改数组元素值 cout << "修改数组元素值:" << x << endl; } for (int x : arr) {...原创 2020-06-04 10:27:05 · 727 阅读 · 1 评论 -
C++中getline()与get()的应用区别详解
1、通常仅仅使用cin去读取用户输入的字符串会有一个问题: 问题:就是输入字符串中有空格,只输出空格之前的字符,之后的字符会存在输入队列中,留给下一次cin输入使用。这就导致下一次cin时,用户不能主动输入就给被动完成了输入。如下例子所示:输入123 45,直接输出123;后面的45留在系统的输入队列中,如果下面紧接着加上一行输入代码,那么45会直接被输出,我们还没来得就反应,就被动输出了。不行可以试试。 // 输入一行字符串 char str[20]; cout << "输..原创 2020-06-03 20:50:14 · 266 阅读 · 0 评论 -
C/C++中结构体字节对齐原理
首先看下面定义的结构体所占空间内存的大小是多少呢?#include <iostream>using namespace std;struct student // 定义结构体{ char a; // 1个字节 int b; // 4个字节}stu;int main() { cout << "结构体所占内存大小:" << sizeof(stu) << endl; cout << "a的地址:" <原创 2020-06-02 21:47:55 · 346 阅读 · 1 评论 -
利用栈实现队列and利用队列实现栈
1、使用两个栈实现一个队列 栈:LIFO 后入先出 队列:FIFO 先入先出取队列头部front的思路:入栈A顺序依次为先后7-8-9-10;队列的头部front应该为7,对应的是栈A的栈底7,为了能利用栈的top取出7,必须利用栈B的辅助,先将栈A的所有元素都弹出压入栈B,实现数字7成为栈B的栈顶top,直接利用栈B的栈顶top即可取出队列头部front 7。其他队列操作函数思路类似,可参考下面代码。// 使用两个stack栈实现queue队列的功能#inclu...原创 2020-05-15 09:26:04 · 226 阅读 · 0 评论