Bjö*_*lex 5 c++ string pointers primitive-types
我想知道这里std::string提到的最后一个构造函数.它说:
template<class InputIterator> string (InputIterator begin, InputIterator end);
Run Code Online (Sandbox Code Playgroud)
如果InputIterator是一个整数类型,则通过类型转换开始和结束来调用它作为第六个构造函数版本(在此正上方):
string(static_cast<size_t>(begin),static_cast<char>(end));
Run Code Online (Sandbox Code Playgroud)
在任何其他情况下,参数被视为迭代器,并且内容被初始化,其中元素的值从迭代器引用的元素开始到迭代器结束引用的元素之前的元素.
所以,这是什么意思,如果InputIterator是char *?
编辑:好的,我的坏.我刚刚意识到它在文档中说的是整数类型,而不是原始类型,因此该问题不适用于该示例.但仍然是指针原语?
C++没有"原始"类型的概念; 整数是基本类型,指针是复合类型.
在这种情况下,char*无法转换为size_t或者char,因此它将被视为InputIterator模板参数.