bool func(const string &);
int main(void)
{
vector vec{ "strings", "helloworld", "zay", "uah", "kakaka" };
auto it = partition(vec.cbegin(), vec.cend(), func);
auto begin = vec.begin();
while (begin != it)
{
cout << *begin << endl;
++begin;
}
return 0;
}
bool func(const string& str)
{
if (str.size() >= 5)
return true;
else
return false;
}
出现错误:没有找到接受……类型的左操作数的运算符(或没有可接受的转换)。
cbegin()返回指向范围内第一个元素的 const 迭代器,可以使用此成员函数替代 begin() 成员函数
partition(vec.cbegin(), vec.cend(), func);这行代码出错了
把cbegin()改为begin(), cend() 改为end()就ok了
这种初始化vector的方式是c++ 2011的语法?
创建vector不是vector vec这样的语法码?
具体哪一行出错。是不是++begin; 不能自增?
是编译的时候的语法错误么?提示信息里面没有定位的信息么?
auto it = partition(vec.cbegin(), vec.cend(), func);
auto begin = vec.begin();
???这是什么语法?缺少数据类型啊
cbegin()返回指向范围内第一个元素的 const 迭代器,可以使用此成员函数替代 begin() 成员函数
partition(vec.cbegin(), vec.cend(), func);这行代码出错了
把cbegin()改为begin(), cend() 改为end()就ok了