c++

c++入门指南

2023-05-18  本文已影响0人  吴佳浩

c++入门指南

什么是C++?

C++(C and Plus +)是一种现代的、高效的、过程化的编程语言,由Bjarne Stroustrup于1983年开发出来,主要用于开发操作系统、网络、游戏和嵌入式系统等应用程序。C++的语法简洁易懂,并且具有强大的功能和广泛的应用,因此在软件开发领域中得到了广泛的应用和支持。

第一步:安装C++

下载安装包

首先,我们需要在计算机上安装C++编译器。以下是几种常见的C++编译器和其下载地址:

设置环境变量

安装完成后,我们需要在系统环境变量中添加C++的安装路径。具体操作步骤会因操作系统不同而有所差异,可以参考以下链接:

安装依赖库

C++编译器和大部分C++库都需要用到一些标准库和第三方库。以下是一些常用的标准库和第三方库:

在安装这些库之前,需要先确定安装路径。例如,如果安装在/usr/local/bin,则需要进入该目录执行以下命令进行安装:

sudo apt-get install build-essential libx11-dev libxext-dev libfontconfig-dev libfreetype6-dev -y

编写hello world程序

在安装完C++编译器和库之后,我们可以尝试编写一个简单的C++程序。下面是一个用C++编写的“hello world”程序的示例代码:


#include <iostream>

int main()
{
    std::cout << "Hello, world!\n";
    return 0;
}

在编译代码之前,我们需要使用C++编译器编译这个程序。以下是使用MinGW编译器编译程序的命令:

g++ -o hello hello.cpp

第二步:了解C++基础语法

变量

C++程序中使用变量的方式和其他编程语言类似。可以通过赋值来给变量赋值,例如:

int a = 5;
int b = 10;
cout << "a = " << a << ", b = " << b << endl;

数据类型

C++支持的数据类型非常丰富,包括整型、浮点型、布尔型、字符型等。下面是一些常见的数据类型的示例代码:

运算符和表达式

C++支持各种运算符和表达式,例如:

流程控制语句

C++程序中也支持各种流程控制语句,例如:

函数

在C++中,函数可以看作是一种封装了算法的方法。可以在程序中定义和调用函数,例如:

#include <iostream>

int main()
{
    // 声明整型变量a、b、c
    int a = 5;
    int b = 10;
    int c = 20;

    // 输出变量a、b、c的值
    std::cout << "a = " << a << ", b = " << b << ", c = " << c << endl;

    return 0;
}

第三步:使用STL库

定义容器

C++标准模板库(STL)中提供了许多容器,例如:

以下是一个使用STL库定义向量的示例代码:

#include <iostream>
#include <vector>
#include <string>

int main()
{
    std::string s("Hello, world!");
    std::vector<std::string> v(s.begin(), s.end());

    // 访问元素
    std::cout << "s = " << s << ", v[0] = " << v[0] << endl;

    return 0;
}

使用数组

数组也是STL库中的一种容器,可以动态扩展长度,并且可以随机访问和插入元素。下面是一个使用数组定义字符串并输出的示例代码:

#include <iostream>
#include <string>
#include <array>

int main()
{
    std::string s = "Hello, world!";
    std::array<std::string, 3> v(s.begin(), s.end());

    // 访问元素
    std::cout << "s = " << s << ", v[0] = " << v[0] << ", v[1] = " << v[1] << endl;

    return 0

第四步:继续完成程序

以下是一个完整的完成程序的示例代码:


#include <iostream>
#include <string>
#include <vector>
#include <array>
#include <memory>
#include <algorithm>
#include <functional>

// 使用map容器实现快速查找
std::map<std::string, int> countLetters(const std::string& str) {
    std::map<std::string, int> result;
    auto it = str.begin();
    auto end = str.end();
    while (it != end) {
        auto c = *it;
        if (std::string("abcdefghijklmnopqrstuvwxyz").find(c) != std::string::npos) {
            result[c]++;
        }
        ++it;
    }
    return result;
}

int main() {
    std::string s("hello, world!");
    auto cnt = countLetters(s);
    std::cout << "Letters in string: " << cnt.size() << std::endl;

    std::string str2("l", "o", "w", "o", "r", "l", "d");
    auto result = countLetters(str2);
    std::cout << "Letters in string2: " << result.size() << std::endl;

    // 使用数组实现快速查找
    std::array<int, 5> scores {{1, 4, 2, 3, 0}};
    auto it = std::max_element(scores.begin(), scores.end());
    std::cout << "Score of 3 in scores array: " << *it << std::endl;

    // 使用向量实现查找
    std::vector<int> scoresVec{{1, 4, 2, 3, 0}};
    auto it = std::upper_bound(scoresVec.begin(), scoresVec.end(), 3);
    if (it != scoresVec.end() && *it == 3) {
        std::cout << "Score of 3 in scores vector: " << scoresVec[*it] << std::endl;
    }

    // 使用map容器实现元素删除
    std::unordered_map<std::string, int> unsortedMap;
    unsortedMap[std::string("c")] = 0;
    unsortedMap[std::string("b")] = 1;
    unsortedMap[std::string("a")] = 2;
    int value = unsortedMap["b"];
    unsortedMap.erase(unsortedMap.find("b"));
    std::cout << "Value of b before deletion: " << value << std::endl;
    unsortedMap["d"] = value * 2;
    std::cout << "Value of b after deletion: " << unsortedMap["b"] << std::endl;

    // 使用optional容器实现元素删除
    std::optional<int> optValue;
    optValue = std::optional<int>(3);
    optValue = std::optional<int>(std::move(optValue));
    std::cout << "Value of optValue before deletion: " << *optValue << std::endl;
    *optValue = 3;
    std::cout << "Value of optValue after deletion: " << *optValue << std::endl;

    return 0;
}

上文内容的总结:

本节以上就是使用C++语言进行STL库的使用,完成了一个名称查找、字符串大小比较、字符串删除等一系列示例任务的程序。这些示例程序能够帮助大家更好地理解STL库的使用,并能够进行进一步的实践。

  1. 介绍了使用C++语言进行STL库的使用,并给出了几个示例任务。通过使用STL库,我们可以轻松地进行数据的处理、排序、搜索、比较等操作。
  2. 通过使用STL库,我们可以快速地实现名称查找、字符串大小比较、字符串删除等一系列示例任务。
  3. 通过这些示例任务,我们可以更好地理解STL库的使用,并可以进行更进一步的实践。
  4. 建议大家在使用STL库时,要熟悉其相关的头文件和函数,并能够灵活运用它们来解决各种问题。
  5. 在进行STL库的使用时,可以使用STL容器和算法,也可以使用STL库提供的其他函数和算法来实现各种需求。
  6. 希望大家能够好好利用STL库,让它成为自己的编程利器。
上一篇下一篇

猜你喜欢

热点阅读