// CPP code to sort the characters// alphabetically using std::get_temporary_buffer#include <iostream>#include <algorithm>#include <memory>#include <string.h>using namespace std;void sorting(char b[], int n) {int i; pair<char*, ptrdiff_t> p = get_temporary_buffer<char>(n);// copy...
second, [](std::string& e) { e.~basic_string<char>(); }); // 等同于:std::destroy(p.first, p.first + p.second); // 不使用 unique_ptr 这类技巧时要手动回收内存: // std::return_temporary_buffer(p.first); } 输出: string 1 test ... 返还临时缓冲区......
获取一块临时内存。在C ++ STL库中,有一个函数get_temporary_buffer,该函数主要用于获取临时块。 该函数的大小为n,并返回最大大小为n的可用缓冲区,该缓冲区可以装入物理内存。 此函数用于获取临时性质的内存,该内存主要用于算法的操作,因为某些算法需要额外的空间才能正确执行。
{std::cout<<"returning temporary buffer...\n";std::return_temporary_buffer(p);});std::copy(s, s+p.second,std::raw_storage_iterator<std::string*,std::string>(p.first));// has same effect as: std::uninitialized_copy(s, s + p.second, p.first);// requires that each string in...
std::pmr::monotonic_buffer_resource std::pmr::pool_options std::raw_storage_iterator std::get_temporary_buffer std::return_temporary_buffer std::uninitialized_copy std::uninitialized_fill std::uninitialized_default_construct std::uninitialized_copy_n std::uninitialized_fill_n std::uninitialized_move...
一、背景介绍: 函数指针始终不太灵活,它只能指向全局或静态函数,对于类成员函数、lambda表达式或其他可...
std::get_temporary_buffer std::return_temporary_buffer std::uninitialized_copy std::uninitialized_fill std::uninitialized_default_construct std::uninitialized_copy_n std::uninitialized_fill_n std::uninitialized_move_n std::uninitialized_default_construct_n std::uninitialized_value_construct_n std::con...
}; const auto p = std::get_temporary_buffer<std::string>(4); // 要求将 p.first 传递给 return_temporary_buffer // (当心提前退出和异常),或者更应该使用: std::unique_ptr<std::string, void(*)(std::string*)> on_exit(p.first, [](std::string* p) { std::cout << "返还临时缓冲...
}; const auto p = std::get_temporary_buffer<std::string>(4); // 要求将 p.first 传递给 return_temporary_buffer // (当心提前退出和异常) std::copy(s, s + p.second, std::raw_storage_iterator<std::string*, std::string>(p.first)); // 要求单独销毁每个 p 中的 string // (当心...
std::get_temporary_buffer std::get_terminate std::get_unexpected std::gmtime std::greater std::greater<void> std::greater_equal std::greater_equal<void> std::hash std::hash std::hash <std::optional> std::hash <std::unique_ptr> std::hash <std::variant> std::hash(std::shared_ptr...