std::raw_storage_iterator
来自cppreference.com
该页由英文版wiki使用Google Translate机器翻译而来。
该翻译可能存在错误或用词不当。鼠标停留在文本上可以看到原版本。你可以帮助我们修正错误或改进翻译。参见说明请点击这里. |
在头文件 <memory> 中定义
|
||
template< class OutputIt, class T > class raw_storage_iterator |
||
输出迭代器
std::raw_storage_iterator
可以使标准算法,将结果存储在未初始化的内存。每当算法写了一个类型T
提领迭代器对象,该对象是复制构造的迭代器指向到该位置的未初始化的存储。模板参数OutputIt
是任何类型,以满足你的要求OutputIterator
operator*定义为返回一个对象,而operator&返回一个对象类型T*
。一般,类型T*
用作OutputIt
.原文:
The output iterator
std::raw_storage_iterator
makes it possible for standard algorithms to store results in uninitialized memory. Whenever the algorithm writes an object of type T
to the dereferenced iterator, the object is copy-constructed into the location in the uninitialized storage pointed to by the iterator. The template parameter OutputIt
is any type that meets thee requirements of OutputIterator
and has operator* defined to return an object, for which operator& returns an object of type T*
. Usually, the type T*
is used as OutputIt
.目录 |
[编辑] 类型要求
-OutputIt 必须满足 OutputIterator 的要求。
|
[编辑] 成员函数
创建一个新raw_storage_iterator (公共成员函数) | |
一个参考这个raw_storage_iterator的返回 原文: returns a reference to this raw_storage_iterator (公共成员函数) | |
拷贝构造一个对象指向的缓冲区中的位置 原文: copy-constructs an object at the pointed-to location in the buffer (公共成员函数) | |
进步的迭代器 (公共成员函数) |
Inherited from std::iterator
Member types
会员类型
|
Definition |
value_type
|
void |
difference_type
|
void |
pointer
|
void |
reference
|
void |
iterator_category
|
std::output_iterator_tag |
[编辑] 示例
#include <iostream> #include <string> #include <memory> #include <algorithm> int main() { const std::string s[] = {"This", "is", "a", "test", "."}; std::string* p = std::get_temporary_buffer<std::string>(5).first; std::copy(std::begin(s), std::end(s), std::raw_storage_iterator<std::string*, std::string>(p)); for(std::string* i = p; i!=p+5; ++i) { std::cout << *i << '\n'; i->~basic_string<char>(); } std::return_temporary_buffer(p); }
输出:
This is a test .
[编辑] 另请参阅
(C++11) |
提供分配器类型的信息 原文: provides information about allocator types (类模板) |
(C++11) |
实现多级的多级容器分配器 原文: implements multi-level allocator for multi-level containers (类模板) |
(C++11) |
检查如果指定的类型支持使用分配器建设的 原文: checks if the specified type supports uses-allocator construction (类模板) |