2010-07-03 47 views

回答

15

std::string沒有單一實現。但是您可以在<string>標題中找到您的特定實施。

在我的系統也可以在這裏找到:

/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.0/include/g++-v4/bits/basic_string.h/usr/lib/gcc/x86_64-pc-linux-gnu/4.5.0/include/g++-v4/bits/basic_string.tcc

在基於Debian的系統:

~$ locate basic_string.tcc 
/usr/include/c++/4.5/bits/basic_string.tcc 
/usr/include/c++/4.6/bits/basic_string.tcc 
~$ locate basic_string.h 
/usr/include/c++/4.5/bits/basic_string.h 
/usr/include/c++/4.6/bits/basic_string.h 
~$ 

一般來說,你將要尋找的basic_string模板,因爲std::string只是一個專業化的。

+0

謝謝。它看起來只是我尋找的方法的原型:find()在那裏「size_type find(const _CharT * __s,size_type __pos,size_type __n)const;」 – Alan 2010-07-03 14:26:25

+0

ahhh對不起。我在basic_string.tcc中找到了它。謝謝! – Alan 2010-07-03 14:28:36

+0

gcc實現在這裏:https://gcc.gnu.org/onlinedocs/gcc-4.8.1/libstdc++/api/a01053_source.htm – 2015-12-04 11:07:58

0

如你所料,

<string> 

,將最有可能位於任何include目錄中的編譯器作爲基礎。

+2

你當然是對的,但請記住(IIRC)''doesn實際上不得不成爲一個實際的文件。我從來沒有見過一個實施,雖然它不是... – 2010-07-03 04:19:54

+0

它不是VMS上的文件;頭文件包含在「文本庫」中,無論它們是什麼。爲什麼,我不知道。 – 2010-07-03 08:58:40

0

它在<string>。這是一個與你的編譯器分發的頭文件。它可能包含其他(私有)頭文件 - Visual Studio的很多實現都在名爲「xstring」的文件中。

0

的答案爲Visual Studio類似的問題: https://stackoverflow.com/a/17205896/5520058

C:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\crt\src\ 

的Visual Studio版本和位置可以改變。這是可以找到源的默認安裝路徑。

的Visual Studio版本:

  • 2005年 - > 8
  • 2008 - > 9
  • 2010 - > 10
  • 2012 - > 11
  • 2013 - > 12
  • 2015 - > 14
相關問題