Где я могу найти реализацию для std :: string - PullRequest
8 голосов
/ 03 июля 2010

Я ищу код для строкового класса c ++.В каком заголовке это реализовано?

Ответы [ 4 ]

16 голосов
/ 03 июля 2010

Не существует единой реализации для 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 голосов
/ 18 июля 2016

Аналогичный вопрос с ответом для 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
0 голосов
/ 03 июля 2010

Это в <string>.Это заголовочный файл, распространяемый вместе с вашим компилятором.Он может включать другие (частные) заголовочные файлы - большая часть реализации для Visual Studio находится в файле с именем "xstring".

0 голосов
/ 03 июля 2010

Как и следовало ожидать,

<string>

, который, скорее всего, будет находиться в любом каталоге include, который ваш компилятор имеет в качестве своей базы.

...