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++] STL简介
[C++] STL简介
7 1
|
9天前
|
存储 算法 C++
C++ STL应用宝典:高效处理数据的艺术与实战技巧大揭秘!
【8月更文挑战第22天】C++ STL(标准模板库)是一组高效的数据结构与算法集合,极大提升编程效率与代码可读性。它包括容器、迭代器、算法等组件。例如,统计文本中单词频率可用`std::map`和`std::ifstream`实现;对数据排序及找极值则可通过`std::vector`结合`std::sort`、`std::min/max_element`完成;而快速查找字符串则适合使用`std::set`配合其内置的`find`方法。这些示例展示了STL的强大功能,有助于编写简洁高效的代码。
23 2
|
16天前
|
安全 编译器 容器
C++STL容器和智能指针
C++STL容器和智能指针
|
18天前
|
算法 安全 Linux
|
2月前
|
设计模式 算法 Java
【c++】STL之stack和queue详解
【c++】STL之stack和queue详解
31 1
|
2月前
|
C语言 C++ 开发者
C++基础知识(一:命名空间的各种使用方法)
C++在C的基础上引入了更多的元素,例如类,类的私密性要比C中的结构体更加优秀,引用,重载,命名空间,以及STL库,模板编程和更多的函数,在面向对象的编程上更加高效。C语言的优势则是更加底层,编译速度会更快,在编写内核时大多数都是C语言去写。 在C++中,命名空间(Namespace)是一种组织代码的方式,主要用于解决全局变量、函数或类的命名冲突问题。命名空间提供了一种封装机制,允许开发者将相关的类、函数、变量等放在一个逻辑上封闭的区域中,这样相同的名字在不同的命名空间中可以共存,而不会相互干扰。
|
2月前
|
存储 算法 C++
【C++高阶】探索STL的瑰宝 map与set:高效数据结构的奥秘与技巧
【C++高阶】探索STL的瑰宝 map与set:高效数据结构的奥秘与技巧
44 0
|
2月前
|
存储 算法 数据处理
【C++】STL简介
**STL是C++标准库的关键部分,源于Alexander Stepanov的泛型编程研究。它提供了数据结构(如vector、list)和算法,是高效、通用的软件框架。STL始于惠普,后由SGI发展,现已成为C++1998标准的一部分并不断进化。它包括容器、迭代器、算法、仿函数、配接器和分配器六大组件,带来高效性、通用性和可扩展性,但也存在性能开销和学习难度。学习STL涉及理解底层数据结构、用法、实现和实践。推荐[cplusplus.com](https://cplusplus.com)作为学习资源。**
|
2月前
|
C++
C++基础知识(二:引用和new delete)
引用是C++中的一种复合类型,它是某个已存在变量的别名,也就是说引用不是独立的实体,它只是为已存在的变量取了一个新名字。一旦引用被初始化为某个变量,就不能改变引用到另一个变量。引用的主要用途包括函数参数传递、操作符重载等,它可以避免复制大对象的开销,并且使得代码更加直观易读。
|
2月前
|
算法 编译器 C++
C++基础知识(三:哑元和内联函数和函数重载)
在C++编程中,"哑元"这个术语虽然不常用,但可以理解为在函数定义或调用中使用的没有实际功能、仅作为占位符的参数。这种做法多见于模板编程或者为了匹配函数签名等场景。例如,在实现某些通用算法时,可能需要一个特定数量的参数来满足编译器要求,即使在特定情况下某些参数并不参与计算,这些参数就可以被视为哑元。
下一篇
云函数