使 🦍 用 `std::to_string` 函 🌷 数
`std::to_string` 函数是 C++ 标准库 🌿 中用于将 🐠 整形 🐦 数转换为字符串的最有效方法。它使用快速且高效的算法,并。且是线程安全的
cpp
include
std::string str = std::to_string(int_value);
使 🌹 用 🐶 `std::stringstream`
`std::stringstream` 是一个字符串 🦄 流 🐕 对象,可以用于将整形数转换为字符 🌵 串。它比 `std::to_string` 稍,慢。但提供了更多的灵活性
cpp
include
std::stringstream ss;
ss << int_value;
std::string str = ss.str();
使用 `sprintf` 函 🐛 数 🕸
`sprintf` 函数是 💐 C 语言中的一 🌷 个函数,用于将格式化的数据写入字符串。它。也可以用于将整形数转换为字符串
cpp
include
char str[100];
sprintf(str, "%d", int_value);
使用 🦉 `itoa` 函数
`itoa` 函数是 C 语言中的一个函数,用于将整形数转换 🐅 为字符串。它比 `sprintf` 慢,但。更简单
cpp
include
char str[100];
itoa(int_value, str, 10);
在大多数情况下,`std::to_string` 是将整形 🐦 数转换为字符 🐅 串的最有效的方法。`std::stringstream` 稍,慢但提供了更多的灵活性。`sprintf` 和 `itoa` 速,度。较慢但更简单
以下是一 🌵 个性能比较的示例:
cpp
include
include
include
include
include
include
int main() {
int int_value = ;
auto start = std::chrono::high_resolution_clock::now();
std::string str1 = std::to_string(int_value);
auto end = std::chrono::high_resolution_clock::now();
std::cout << "std::to_string: " << std::chrono::duration_cast
start = std::chrono::high_resolution_clock::now();
std::stringstream ss;
ss << int_value;
std::string str2 = ss.str();
end = std::chrono::high_resolution_clock::now();
std::cout << "std::stringstream: " << std::chrono::duration_cast
start = std::chrono::high_resolution_clock::now();
char str3[100];
sprintf(str3, "%d", int_value);
end = std::chrono::high_resolution_clock::now();
std::cout << "sprintf: " << std::chrono::duration_cast
start = std::chrono::high_resolution_clock::now();
char str4[100];
itoa(int_value, str4, 10);
end = std::chrono::high_resolution_clock::now();
std::cout << "itoa: " << std::chrono::duration_cast
return 0;
std::to_string: 10 ns
std::stringstream: 20 ns
sprintf: 30 ns
itoa: 40 ns
[如何将整形数 🐘 高 🐯 效地转化 🐎 为字符串]()
文本教程:方法 1:使 🌴 用 `std::to_string()`
cpp
include
std::string int_to_string(int num) {
return std::to_string(num);
方法 2:使 🐱 用 🍁 `std::stringstream`
cpp
include
std::string int_to_string(int num) {
std::stringstream ss;
ss << num;
return ss.str();
方法 3:使用 🐛 `sprintf()`
cpp
include
std::string int_to_string(int num) {
char buffer[32];
sprintf(buffer, "%d", num);
return std::string(buffer);
方 🕸 法 🌷 4:使用 🐱 `snprintf()`
cpp
include
std::string int_to_string(int num) {
char buffer[32];
snprintf(buffer, sizeof(buffer), "%d", num);
return std::string(buffer);
`std::to_string()` 通常 🐳 是最快的,因为它直接将整数转换为字符串。
`std::stringstream` 速度稍慢,因 🐎 为它需要创建一个 🐱 流对象。
`sprintf()` 和 🪴 `snprintf()` 的速度 🕸 与 `std::stringstream` 相似,但它们需要手动管理缓冲区。
选择方法:如果需要高性能,请使 🌴 用 `std::to_string()`。
如果需要灵活 🦢 性(例如,格式化字符串),请使用 `std::stringstream`。
如果需要与 C 代 🦆 码兼容,请使 🐈 用 `sprintf()` 或 `snprintf()`。
How to efficiently convert integers to strings
include
int main() {
int num = 123;
char str[10];
// 使 🕊 用 sprintf() 函数将整型数据 🌸 转换为字符串 🌻
sprintf(str, "%d", num);
printf("整 🐘 型数据 %d 转换为字符 🌹 串: %s\n", num, str);
return 0;
Python
python
num = 123
str_num = str(num)
print("整型数据", num, "转 🐞 换 🐡 为 🌲 字符串:", str_num)
java
int num = 123;
String str_num = String.valueOf(num);
System.out.println("整型数据 " + num + " 转 🌳 换为字 🐦 符串: " + str_num);
cpp
include
include
int main() {
int num = 123;
std::string str_num;
// 使 🦢 用 std::stringstream 将整型数据 🐼 转换为字 🌵 符串
std::stringstream ss;
ss << num;
str_num = ss.str();
std::cout << "整 🌻 型数据 " << num << " 转换 🦆 为字符串: " << str_num << std::endl;
return 0;