C++向量操作与算法实践

26、创建一个按顺序包含字母表中字母的 vector<char> 。按顺序和逆序打印该向量的元素。

以下是实现该功能的 C++ 代码示例:

#include <iostream>
#include <vector>
#include <algorithm>

int main() {
    std::vector<char> alphabet;
    // 填充字母表
    for (char c = 'a'; c <= 'z'; ++c) {
        alphabet.push_back(c);
    }
    // 按顺序打印
    std::cout << "顺序打印: ";
    for (char c : alphabet) {
        std::cout << c << " ";
    }
    std::cout << std::endl;
    // 逆序打印
    std::cout << "逆序打印: ";
    for (auto it = alphabet.rbegin(); it != alphabet.rend(); ++it) {
        std::cout << *it << " ";
    }
    std::cout << std::endl;
    return 0;
}

上述代码首先创建了一个 vector<char> 并填充了字母表中的字母,然后分别按顺序和逆序打印了这些字母。

27、创建一个 vector<string> ,从标准输入 cin 读取一系列水果名称存入其中。对该列表进行排序并打印出来。

以下是实现该功能的 C++ 代码示例:

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

int main() {
    std::vector<std::string> fruits;
    std::string fruit;

    // 从 cin 读取水果名称
    while (std::cin >> fruit) {
        fruits.push_back(fruit);
    }

    // 对水果列表进行排序
    std::sort(fruits.begin(), fruits.end());

    // 打印排序后的水果列表
    for (const auto& f : fruits) {
        std::cout << f << std::endl;
    }

    return 0;
}

在上述代码中,首先创建了一个 vector<string> 用于存储水果名称。然后通过 while 循环从标准输入读取水果名称并添加到向量中。接着使用 std::sort 函数对向量进行排序。最后,使用范围 for 循环遍历向量并打印每个水果名称。

28、为一个现有的(非标准、非学生练习用)容器类型编写一个模板,使其具有与标准向量相同的成员函数和成员类型。不要修改现有的容器类型。对于非标准向量提供但标准向量没有的功能,你会如何处理?

要编写一个模板来实现具有与标准向量相同成员函数和成员类型的容器,可定义一个模板类,在其中使用现有容器类型作为底层存储,并实现标准向量的接口。对于非标准向量提供但标准向量没有的功能,可以通过在模板类中添加额外的成员函数来实现这些功能,或者提供一个包装类,在包装类中实现这些额外功能,同时保持模板类的接口与标准向量一致。

29、仅使用标准库算法对列表(list)进行排序。

标准库中的 list 没有提供随机访问迭代器,所以 list 应使用特定的 list 操作进行排序,即使用 list 自身提供的排序方法,而非通用的 sort() 算法。

30、生成一个包含 1 到 100 的数字平方的向量。打印平方数表。对该向量的元素取平方根并打印结果向量。

以下是使用 Python 实现的代码:

import math

# 生成包含 1 到 100 的数字平方的向量
vector = [i**2 for i in range(1, 101)]

# 打印平方数表
print("平方数表:")
for i, num in enumerate(vector, start=1):
    print(f"{i} 的平方是: {num}")

# 对向量的元素取平方根
sqrt_vector = [math.sqrt(num) for num in vector]

# 打印结果向量
print("取平方根后的向量:")
print(sqrt_vector)

这段代码首先使用列表推导式生成 1 到 100 的数字平方的向量,然后打印平方数表,接着对向量元素取平方根并打印结果向量。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值