[英]Complexity of Converting String to Int in C++
我在用c ++將字符串數據類型轉換為int時遇到麻煩,我目前正在使用DevC ++ GNU版本5.8.3,當我使用stoi ()函數時會出錯。 我關心的不是轉換,而是轉換的復雜性和完成方式。 下面的代碼:
#include<bits/stdc++.h>
int main(){
string s="abc";
int i=stoi(s,NULL,16);
}
錯誤:未在此范圍內聲明“ stoi”
因此,我編寫了自己的函數,代碼如下:
字符串到整數:
int strtonum(string s,int length) {
int num=0;
for(int i=0;i<length;i++)
num=num*10+(int)s[i]-48;
return num;
}
整數到字符串:
string numtostring(int number){
int digit=floor(log10(number))+1;
string s="";
for(int i=0;i<digit;i++){
s+=(char)(48+number%10);
number/=10;
}
reverse(s.begin(),s.end());
return s;
}
這兩個函數都給出了期望的輸出,但是我擔心轉換的復雜性。
對於要轉換為Int的字符串,它是: O(n)
對於Int to String,它是: O(n)+ O(n / 2)
問:是否有更好的解決方案來解決此問題?
問:內置功能有多復雜
問:如何將一種數據類型轉換為另一種數據類型?
Error : 'stoi' was not declared in this scope
嘗試添加“ std ::”
//stoi // x
std::stoi(...) // ok
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.