簡體   English   中英

在C ++中將字符串轉換為Int的復雜性

[英]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)

問:是否有更好的解決方案來解決此問題?

問:內置功能有多復雜

問:如何將一種數據類型轉換為另一種數據類型?

您可能想要使用atoi及其補充strtod或此類中的一些相關功能。

Error : 'stoi' was not declared in this scope

嘗試添加“ std ::”

//stoi // x

std::stoi(...) // ok

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM