c++基础知识——常规语句和STL

简介: c++基础知识——常规语句和STL

c++基础知识的合集:`


前面讲了c++语言中的变量和常量,今天将会对c++语言中的常规语法和STL数据库进行详细介绍:


提示:以下是本篇文章正文内容,下面案例可供参考


一、c++程序基础知识


1.运算符


(1).常规运算符及其用法


f548aa9efd2f5d21c9cff4b306271d73_watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5b-D6ZqP6ICM5Yqo,size_20,color_FFFFFF,t_70,g_se,x_16.png


代码演示:


#include<iostream>
using namespace std;
int main(void)
{
  //赋值运算符:
  const int a = 3;//利用关键字const表示a是常量,并将3赋值给a;
  //算数运算符:
  int m1 = 4, m2 = 2, m3;
  m3 = m1 / m2;
  cout << m3;//将会得到2
  m3 = m1 % m2;
  cout << m3 << endl;//将会得到0
  //关系运算符;
  bool elemstyle;
  if (m1 > 2)
  {
  elemstyle = true;
  }
  else
  {
  elemstyle = false;
  }
  cout << elemstyle;//输出true;
  //三目运算符,?:;
  double x1=30, x2=20;
  double x3;
  x3 = x1 > x2 ? x1 : x2;
  cout << x3 << endl;//输出30;
}


2.STL之string


STL是Standard Template Library的缩写,即标准模板库,主要包含容器,算法,迭代器等方面的内容,STL常用的容器包括string(字符串),vector(向量),stack(栈),queue(队列),list(表),set(集合),map(映射).


7adf8a3a4fa0db51cbe6adf71c30cef1_watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5b-D6ZqP6ICM5Yqo,size_20,color_FFFFFF,t_70,g_se,x_16.png


6eafe550a370a77a0373c6638c410af0_watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5b-D6ZqP6ICM5Yqo,size_20,color_FFFFFF,t_70,g_se,x_16.png


示例代码:



#include<iostream>
#include<string>
using namespace std;
int main(void)
{
  string s = "Hello word!";
  int size,length;
  size = s.size();
  length = s.length();//都为 s的长度
  cout << size << " " << length << endl;
  int k = s.find(' ');//查找空格;
  cout << "空格所在位置:" << k << endl;
  if (k != -1)
  {
  cout << s.substr(0, k) << endl;;//从零开始取长度为k的字符串;
  }
}


3.c++中的一些常用库函数


df815e955ae056a108f7518aa25a8452_watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5b-D6ZqP6ICM5Yqo,size_20,color_FFFFFF,t_70,g_se,x_16.png


二、程序控制结构


1.选择结构


if()else语句


eac951f0cf72f49a6a508e38626dae97_watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5b-D6ZqP6ICM5Yqo,size_20,color_FFFFFF,t_70,g_se,x_16.png


switch()语句


31becd91f9d694c295ba5ee12bba3cf9_watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5b-D6ZqP6ICM5Yqo,size_20,color_FFFFFF,t_70,g_se,x_16.png


2.循环结构


1.do…while()循环语句


4f3ac40c95c0b4e66b7a9fe060b0a763_watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5b-D6ZqP6ICM5Yqo,size_20,color_FFFFFF,t_70,g_se,x_16.png


2.while()循环语句


500a110a1fd6200f64ec55195a055612_watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5b-D6ZqP6ICM5Yqo,size_20,color_FFFFFF,t_70,g_se,x_16.png


while循环语句和do…while()语句的差别在于,while的执行情况最少为一,do…while语句最少的执行情况为1.根据这个特点,可以在不同的情况下使用.


3.for()循环语句


27d5b44aaa80f33e7811a70d51d63112_watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5b-D6ZqP6ICM5Yqo,size_20,color_FFFFFF,t_70,g_se,x_16.png


3.跳转语句


2e664cdb7c84865f1e9613aee2595262_watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5b-D6ZqP6ICM5Yqo,size_20,color_FFFFFF,t_70,g_se,x_16.png


void函数后不能返回函数值,即不能用return 返回函数值;


4.字符串和字符串流


在学习字符数组前先学习数组;


1.数组


7e74519fd7d47ca051fe866a7b63dc37_watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5b-D6ZqP6ICM5Yqo,size_20,color_FFFFFF,t_70,g_se,x_16.png


2.数组应用——约瑟夫环


6b3814d503cee02558009302da952e18_watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5b-D6ZqP6ICM5Yqo,size_20,color_FFFFFF,t_70,g_se,x_16.png


代码如下(示例):


#include<iostream>
#include<cmath>
#include<string>
using namespace std;
const int N = 100;//全局变量;
int main(void)
{
  int n;
  bool a[N];
  int count = 0, m;
  cin >> n;
  m = n;
  for (int i = 0; i < n; i++)
  {
  a[i] = true;//作为一个标识符;
  }
  int i = -1;
  while (m > 1)
  {
  i = (i + 1) % n;//往下走,如果走到尽头,则从起始位置开始走;
  if (a[i] == false)//如果出列了就跳过;
  {
    continue;
  }
  count++;//报数加一;
  if (count == 3)
  {
    a[i] = false;
    m--;//人数减一;
    count = 0;//从头开始报;
  }
  }
  for (int j = 0; j < n; j++)
  {
  if (a[j] == true)
  {
    cout << "最后的人是:" <<j + 1<<"号" << endl;
    break;
  }
  }
  return 0;
}



2.字符串数组和字符串流


2fe669cd7853c612286ae9de90fb05e4_watermark,type_d3F5LXplbmhlaQ,shadow_50,text_Q1NETiBA5b-D6ZqP6ICM5Yqo,size_20,color_FFFFFF,t_70,g_se,x_16.png


#include<iostream>
#include<string>
#include<sstream>//串流头文件;
using namespace std;
int main(void)
{
  string s;
  string t;
  string sum;
  getline(cin, s);
  stringstream ss;//字符串流;
  ss << s;//将空格隔开的字符进行串流,可以除去空格;
  while (ss >> t)
  {
  sum += t;
  }
  cout << sum;
}
stringstream也可以用来将整数转换为字符串;
如果要输入大量的字符串,尽量不要用string,容易超时,可以作为数据缓冲区;
例如:
#define _CRT_SECURE_NO_WARNINGS 1
#include<iostream>
#include<string>
#include<sstream>//串流头文件;
using namespace std;
int main(void)
{
  string s;
  char ch[100];
  scanf("%s",ch);
  s = ch;
  int count = 0;
  for(int i=0;i<s.size();i++)
  {
  count++;
  }
  cout << count << endl;
}



总结


本文简单介绍了c++语言中的一些基本语句,后面会继续更新一些标准库函数;

相关文章
|
3天前
|
存储 算法 C++
C++ STL精通之旅:向量、集合与映射等容器详解
C++ STL精通之旅:向量、集合与映射等容器详解
62 0
|
5天前
|
存储 前端开发 C++
【C++入门到精通】C++入门 —— 容器适配器、stack和queue(STL)
在C++中​​std::stack​​​是一个模板类,它是基于容器的适配器,用于实现堆栈数据结构。堆栈是一种后进先出(LIFO)的数据结构,类似于现实生活中的一叠盘子。
16 4
|
15天前
|
存储 定位技术 C++
C++ STL容器与常用库函数
C++ STL容器与常用库函数
58 0
C++ STL容器与常用库函数
|
15天前
|
机器学习/深度学习 C++
C/C++基础知识——数组、循环
C/C++基础知识——数组、循环
30 0
C/C++基础知识——数组、循环
|
19天前
|
存储 算法 C++
开心档之 C++ STL 教程
开心档之 C++ STL 教程
|
20天前
|
存储 算法 搜索推荐
【编码狂想】探索C++ STL:提升编程效率的强大工具集
【编码狂想】探索C++ STL:提升编程效率的强大工具集
12 0
|
20天前
|
存储 算法 C++
【C++】STL的基本用法
【C++】STL的基本用法
21 0
|
22天前
|
存储 Linux C语言
C++STL——string类详解及其模拟实现
C++STL——string类详解及其模拟实现
|
25天前
|
存储 算法 C语言
【C++入门到精通】C++入门 —— list (STL)
std::list是C++标准库中的双向链表容器。(这里有官方介绍链接) 它支持在任意位置进行快速插入和删除操作,并且在需要对元素进行频繁的插入和删除操作时,通常比std::vector更高效。std::list的元素不是在连续内存中存储,而是通过指针相互连接在一起。
33 1
|
26天前
|
存储 算法 C语言
【C++入门到精通】C++入门 —— list (STL)
std::list是C++标准库中的双向链表容器。​​(这里有官方介绍链接)​​ 它支持在任意位置进行快速插入和删除操作,并且在需要对元素进行频繁的插入和删除操作时,通常比std::vector更高效。std::list的元素不是在连续内存中存储,而是通过指针相互连接在一起。
18 0

相关产品

  • 云迁移中心