草庐IT

istream_iterators

全部标签

c++ - 可以在声明的同一行上使用 istream 初始化变量吗?

这个问题在这里已经有了答案:Arethereanytrickstousestd::cintoinitializeaconstvariable?(6个回答)关闭4年前.下面两行可以浓缩成一条吗?intfoo;std::cin>>foo; 最佳答案 聪明的答案:intold;std::cin>>old;可怕的答案:intold,dummy=(std::cin>>old,0);正确答案:old必须先用声明定义,然后才能作为参数传递给operator>>。在变量声明中获取函数调用的唯一方法是将其放在上面的初始化表达式中。声明变量并将输入读入

C++ STL : list with Pointers - Iterator cannot access?

我正在为一个包含我的“对象”对象指针的STL列表而苦苦挣扎。我声明:listobjectlist;并通过以下方式插入:this->objectlist.push_back(newObject(address,value,profit));并尝试像在map和其他中一样进行迭代:list::iteratoriter;iter=this->objectlist.begin();while(iter!=this->objectlist.end()){iter->print();}其中print()是Object类的公共(public)方法;这里有什么问题?我无法通过迭代器访问列表中的对象?

C++ STL : list with Pointers - Iterator cannot access?

我正在为一个包含我的“对象”对象指针的STL列表而苦苦挣扎。我声明:listobjectlist;并通过以下方式插入:this->objectlist.push_back(newObject(address,value,profit));并尝试像在map和其他中一样进行迭代:list::iteratoriter;iter=this->objectlist.begin();while(iter!=this->objectlist.end()){iter->print();}其中print()是Object类的公共(public)方法;这里有什么问题?我无法通过迭代器访问列表中的对象?

c++ - istream::getline 返回类型

istream::getline方法返回什么?我之所以问,是因为我已经看到要循环遍历文件,应该这样做:while(file.getline(char*,int)){//handleinput}返回什么? 最佳答案 它返回一个流,以便我们可以链接操作。但是当你在bool上下文中使用一个对象时,编译器会寻找一个可以将它转换为可以在bool上下文中使用的类型的转换运算符。C++11在这种情况下,流具有explicitoperatorbool()const.当被调用时,它会检查错误标志。如果设置了failbit或badbit,则返回fals

c++ - istream::getline 返回类型

istream::getline方法返回什么?我之所以问,是因为我已经看到要循环遍历文件,应该这样做:while(file.getline(char*,int)){//handleinput}返回什么? 最佳答案 它返回一个流,以便我们可以链接操作。但是当你在bool上下文中使用一个对象时,编译器会寻找一个可以将它转换为可以在bool上下文中使用的类型的转换运算符。C++11在这种情况下,流具有explicitoperatorbool()const.当被调用时,它会检查错误标志。如果设置了failbit或badbit,则返回fals

c++ - std::string::iterator 偏移并返回

我是否可以通过某个成员将迭代器设置为字符串中的第5位,或者我必须执行for(i=0;i?给定一个迭代器,如何将其转换为字符串中的数字偏移量?如果std::iterators无法做到这一点,可以提升吗?迭代器偏移量 最佳答案 CanIsetaniteratortoposition5inastringviasomemember您可以使用std::advancestd::advance(iterator,5);或iterator+=5;GivenanIterator,howcanIconvertthattoanumericoffsetin

c++ - std::string::iterator 偏移并返回

我是否可以通过某个成员将迭代器设置为字符串中的第5位,或者我必须执行for(i=0;i?给定一个迭代器,如何将其转换为字符串中的数字偏移量?如果std::iterators无法做到这一点,可以提升吗?迭代器偏移量 最佳答案 CanIsetaniteratortoposition5inastringviasomemember您可以使用std::advancestd::advance(iterator,5);或iterator+=5;GivenanIterator,howcanIconvertthattoanumericoffsetin

c++ - STL 算法 : Why no additional interface for containers (additional to iterator pairs)?

我想知道为什么STL不会重载它们的算法函数,这样我就可以通过简单地提供一个容器而不是采用更冗长的方式来传递begin+end迭代器来调用它们。我当然理解为什么我们还想使用迭代器对来处理容器/数组的子序列,但是,几乎所有对这些方法的调用都使用了整个容器:std::for_each(myVector.begin(),myVector.end(),doSomething);我会发现只写更方便、可读和可维护std::for_each(myVector,doSomething);STL不提供这些重载是否有原因?[编辑:我的意思不是用这个受限的接口(interface)替换接口(interface

c++ - STL 算法 : Why no additional interface for containers (additional to iterator pairs)?

我想知道为什么STL不会重载它们的算法函数,这样我就可以通过简单地提供一个容器而不是采用更冗长的方式来传递begin+end迭代器来调用它们。我当然理解为什么我们还想使用迭代器对来处理容器/数组的子序列,但是,几乎所有对这些方法的调用都使用了整个容器:std::for_each(myVector.begin(),myVector.end(),doSomething);我会发现只写更方便、可读和可维护std::for_each(myVector,doSomething);STL不提供这些重载是否有原因?[编辑:我的意思不是用这个受限的接口(interface)替换接口(interface

c++ - 'std::vector<T>::iterator it ;' doesn' t 编译

我有这个功能:templatevoidInventory::insertItem(std::vector&v,constT&x){std::vector::iteratorit;//doesn'tcompilefor(it=v.begin();it而g++给出了这些错误:src/Item.hpp:Inmemberfunction‘voidyarl::item::Inventory::insertItem(std::vector>&,constT&)’:src/Item.hpp:186:error:expected‘;’before‘it’src/Item.hpp:187:error:‘