C++学习笔记(四十七):c++ 字符串优化

发布时间:2024年01月22日

本节介绍c++字符串优化的相关知识。c++中string对性能的影响比较大,因为string的很多操作都需要重新分配内存,进而影响程序性能。

接下来通过代码来展示优化的小技巧

#include <iostream>
#include <string>

static int m_times = 0;

//重写new操作符,用来统计分配内存的次数
void* operator new(size_t size)
{
	m_times++;
	return malloc(size);
}

int main() {
	std::string name = "pcop_learing";

	std::string s1 = name.substr(0, 4);

	std::cout << s1 << std::endl;
	std::cout << m_times << "\n";    //此种情况下分配两次,因为substr会创建一个新的string来完成

}

用string_view来替换substr,string_view是通过内存试图来操作,简单说就是还在在原来的内存进行操作,取指定内存位置的值。?string_view是c++17中的特性。

#include <iostream>
#include <string>

static int m_times = 0;

//重写new操作符,用来统计分配内存的次数
void* operator new(size_t size)
{
	m_times++;
	return malloc(size);
}

int main() {
	std::string name = "pcop_learing";

	std::string_view s1(name.c_str(), 4);

	std::cout << s1 << std::endl;
	std::cout << m_times << "\n";    //此种情况下分配1次,因为string_view是在原来name的内存空间完成

}

文章来源:https://blog.csdn.net/qq_16701727/article/details/135751305
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。