美文网首页Qt QML 杂记
QString 和 stl::string 选择和转换

QString 和 stl::string 选择和转换

作者: 赵者也 | 来源:发表于2017-11-11 11:37 被阅读7次
    QString 和 stl::string

    QString,优于 STL 中的字符串类型,因为它有丰富的 API 且更容易使用。它的实现支持延迟写时复制(lazy copy-on-write)和隐式共享(implicit sharing),所以函数能够接收 QString 类型的实参并返回 QString 类型的值,而不必每一次都为字符串分配内存并进行复制。此外,QString 还内置支持 Unicode 标准,以便程序的国际化。

    在使用 Qt 和 C++ 进行开发的时候,由于 QString 和 stl::string 两者的数据类型不完全相同,需要进行转换。下面介绍 QString 和 stl::string 类型相互转换的方法:

    1、在头文件中添加inlucde信息和转换函数声明:

    #include <QString>  
    #include <vector>  
    #include <iostream>  
    #include <string>  
    
    using namespace std;  
    
    QString s2q(const string &s);  
    string q2s(const QString &s);  
    

    2、在 CPP 实现文件中添加以下转换函数即可:

    QString s2q(const string &s)  {  
         return QString(QString::fromLocal8Bit(s.c_str()));
    }  
    
    string q2s(const QString &s)  {  
         return string((const char *)s.toLocal8Bit());
    }  
    

    相关文章

      网友评论

        本文标题:QString 和 stl::string 选择和转换

        本文链接:https://www.haomeiwen.com/subject/oaywmxtx.html