C++: 如何高效地将 char* 转换为 vector

在 C++ 编程中,经常需要将 C 风格字符串 (char*) 转换为更灵活的 std::vector<char> 类型。std::vector 提供了动态大小和许多其他功能,使其成为处理字符串数据的更优选择。

以下是使用 std::vector 的构造函数高效地将 char* 转换为 std::vector<char> 的方法:cpp#include #include #include

int main() { const char* str = 'Hello, world!'; std::vector vec(str, str + strlen(str));

// 输出 vector 中的元素    for (char c : vec) {        std::cout << c;    }    std::cout << std::endl;

return 0;}

代码解释:

  1. #include <vector>: 包含 vector 头文件以使用 std::vector 类。2. const char* str = 'Hello, world!';: 定义一个指向 C 风格字符串的指针。3. std::vector<char> vec(str, str + strlen(str));: 这是关键的一步。我们使用 std::vector 的构造函数,该构造函数接受两个迭代器作为参数。 - 第一个参数 str 指向 C 风格字符串的开头。 - 第二个参数 str + strlen(str) 指向 C 风格字符串的结尾(空终止符)。 - 此构造函数将 strstr + strlen(str) 之间的字符复制到 vec 中。4. for (char c : vec) { std::cout << c; }: 使用基于范围的 for 循环迭代 vec 并打印每个字符。

总结:

使用 std::vector 的构造函数可以轻松高效地将 char* 转换为 std::vector<char>。此方法利用迭代器提供了一种简洁且易于理解的解决方案。

C++: 如何高效地将 char* 转换为 vector

原文地址: https://www.cveoy.top/t/topic/fK7I 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录