STL——string字符串比较、字符存取

一、string字符串比较

功能描述:

字符串之间的比较

比较方式:

字符串是按照ASCII码进行比较的,

=返回0

>返回1

<返回-1

函数原型:

int compare(const string &s) const; //与字符串s比较

int compare(const char *s) const; //与字符串s比较

Demo:

#include<iostream>
#include<string>
using namespace std;
//字符串比较

/*
int compare(const string &s) const; //与字符串s比较
int compare(const char *s) const; //与字符串s比较
*/

void test01()
{
	string str1 = "hello";
	string str2 = "xello";
	//最大的用处是比较两个是否相等。
	if (str1.compare(str2) == 0)
	{
		cout << "相等" << endl;
	}
	else if (str1.compare(str2) > 0)
	{
		cout << "大于" << endl;
	}
	else {
		cout << "小于" << endl;
	}

}


int main()
{
	test01();
	system("pause");
	return 0;
}

二、string 字符存取

string中单个字符存取方式有2种

char& operator[](int n); //通过[]方式取字符

char& at(int n); //通过at方式获取字符

//字符存取
void test02()
{
	string str = "hello";
	//1、通过[]访问单个字符

	for (int i = 0; i < str.size(); i++)
	{
		cout << str[i] << " ";
	}

	cout << endl;
	//2、通过at方式访问单个字符

	for (int i = 0; i < str.size(); i++)
	{
		cout << str.at(i) << " ";
	}

	cout << endl;
	//修改单个字符
	str[0] = 'x';
	cout << "str=" << str << endl;

	str.at(1) = 'x';
	cout << "str=" << str << endl;
}

 

### 如何在 Qt 中向 QVector 添加 QString 数组 在 Qt 的容器类中,`QVector` 是一种动态数组结构,支持高效的随机访问操作。为了向 `QVector<QString>` 类型的对象添加一组字符串数据,可以利用多种方法实现这一目标。 以下是具体的代码示例以及说明: #### 方法一:通过初始化列表直接赋值 如果已知要添加的字符串数组内容,则可以直接使用 C++11 提供的初始化列表功能完成赋值操作[^1]。 ```cpp #include <QVector> #include <QString> // 定义并初始化 QVector 对象 QVector<QString> stringVector = {"Apple", "Banana", "Cherry"}; ``` 此方式简单直观,在编译期即可确定数组的内容。 --- #### 方法二:逐个追加单个元素 对于未知大小或者运行时生成的数据集,可以通过多次调用 `append()` 函数逐一添加字符串到 `QVector` 中[^2]。 ```cpp #include <QVector> #include <QString> QVector<QString> stringVector; stringVector.append("Apple"); stringVector.append("Banana"); stringVector.append("Cherry"); // 或者使用 << 运算符简化写法 stringVector << "Grape" << "Lemon"; ``` 上述两种形式均能有效扩展 `QVector` 的容量,并按顺序保存新加入的字符串。 --- #### 方法三:批量插入现有 QStringList 数据 当存在一个现成的 `QStringList` 需要整体迁移到 `QVector` 时,可借助 STL-style iterator 范围构造器一次性导入全部条目。 ```cpp #include <QVector> #include <QString> #include <QStringList> QStringList list = {"Watermelon", "Pineapple", "Kiwi"}; // 将 QStringList 转换为 QVector QVector<QString> stringVector(list.begin(), list.end()); ``` 这种方法特别适合处理已经封装好的序列化数据源转换场景。 --- #### 性能考量 由于 `QVector` 在底层采用连续内存布局设计,因此相比链表类型的容器(如 `QList`),其在预估好存储规模前提下能够提供更高的存取效率和更低的空间开销。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值