C++: 如何高效地将 char* 转换为 vector
C++: 如何高效地将 char* 转换为 vector
在 C++ 编程中,经常需要将 C 风格字符串 (char*) 转换为更灵活的 std::vector<char> 类型。std::vector 提供了动态大小和许多其他功能,使其成为处理字符串数据的更优选择。
以下是使用 std::vector 的构造函数高效地将 char* 转换为 std::vector<char> 的方法:cpp#include
int main() { const char* str = 'Hello, world!'; std::vector
// 输出 vector 中的元素 for (char c : vec) { std::cout << c; } std::cout << std::endl;
return 0;}
代码解释:
#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 风格字符串的结尾(空终止符)。 - 此构造函数将str和str + strlen(str)之间的字符复制到vec中。4.for (char c : vec) { std::cout << c; }: 使用基于范围的 for 循环迭代vec并打印每个字符。
总结:
使用 std::vector 的构造函数可以轻松高效地将 char* 转换为 std::vector<char>。此方法利用迭代器提供了一种简洁且易于理解的解决方案。
原文地址: https://www.cveoy.top/t/topic/fK7I 著作权归作者所有。请勿转载和采集!