std::string 是什么

Posted heben

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了std::string 是什么相关的知识,希望对你有一定的参考价值。

#include "stdafx.h"
#include <iostream>
#include <string>
using std::cout;
using std::endl;
using std::cin;
using std::string;
int main(void)
{
    char chars1[20];
    char chars2[20] = "jaguar";
    string str1;
    string str2 = "pather";
    cout << "Enter a kind of feline: " << endl;
    cin >> chars1;
    cout << "Enter another kind of feline: " << endl;
    cin >> str1;
    cin.get();
    return 0;
}

上面的程序如果没有#include<string>,则cin>>str1将会报错,而string str1不会报错,那么std::string是在哪里定义的?

头文件之间的包含关系如下

#include <iostream>

#include <istream>

#include <ostream>

#include <ios>

#include <xlocnum>

#include <cstdio>

#include <yvals.h>

在iostream里,使用了宏_STD_BEGIN,该宏是定义在yvals.h里的

技术分享图片

 

以上是关于std::string 是什么的主要内容,如果未能解决你的问题,请参考以下文章

什么是 std::safe_string?

std::string 源代码中宏的使用

为什么std :: string没有空指针?

为啥'=='在std :: string上很慢?

文件到 std::string_view

string::npos 在这段代码中是啥意思?