\documentclass[a4paper,12pt]{article}
\usepackage[utf8]{inputenc}
\usepackage[UTF8]{ctexcap}
\usepackage{amsmath}
\usepackage{amsfonts}
\usepackage{amssymb}

\usepackage{xcolor}
%opening
\title{C++学习笔记}
\author{行走的芦苇}

\begin{document}

\maketitle

%\begin{abstract}

%\end{abstract}

\section{基本概念}
在协作完成一个大的软件时，应如何合理地设计程序结构，并保证每一个子程序之间都能正确地共享和交换数据，这是编程的\textcolor{red}{核心问题}。

程序员的任务是将计算表达出来，并且做到：
\begin{itemize}
 \item 正确
 \item 简单
 \item 高效
\end{itemize}
一个看似矛盾的事实：关注代码结构和代码“质量”是程序取得成功的最快捷径。\\
程序的组织体现了程序员的编程思路、目前手段主要是把大的计算任务划分为许多小任务，这一技术主要包括两类方法。
\begin{itemize}
 \item[抽象]：即不需要了解的程序具体实现细节被隐藏在相应的接口后边
 \item[分治]：把一个大问题分为几个小问题分别解决
\end{itemize}
对于一个好的程序员和系统设计师，软件的\textbf{结构问题}是在开发过程中始终要关注的最重要问题。

将问题不断的分解、细化，直到问题小到能够被我们很好的理解和解决为止\\
表达式是程序的最小组成单元，表达式就是从一些操作数计算一个值。\\
左值：一个变量；右值，一个变量的值\\
符号常量表示那些在初始化后值不再改变的数值量。\\
表达式语句主要包括赋值语句、I/O语句和函数调用。声明语句呢？？

除了合法输入情况以外，程序必须经过各种非法输入的检验。\\
switch语句括号中值必须是整型、字符型或枚举类型。特别的，不能使用字符串型\\
\begin{verbatim}
 char* ca = reinterpret_cast<char*>(&a);
\end{verbatim}
判定一个自然数是质量的方法：
对于任一自然数$N$，$0 <m <N-1$,若$ \frac{N}{m}\neq 0$，则$N$为质数。\par
\textbf{算法描述}
\begin{description}
 \item[输入]输入正整数$N$,$N>=3$
 \item[判定]对于$\forall M~~2<M<N-1$,若$N\%M == 0$，则$N$为质数。
\end{description}
\textcolor{red}{为什么vector不做越界检查呢？}






\end{document}
