【发布时间】:2016-11-07 17:34:24
【问题描述】:
vector<int> :: iterator itr1;
cin >> query;
for(i = 0; i < query ; i++)
{
cin >> checknum;
if (binary_search (v.begin(), v.end(), checknum))
{
itr1 = lower_bound(v.begin(), v.end(), checknum);
cout << "Yes " << itr1 << endl;
}
else
{
itr1 = lower_bound(v.begin(), v.end(), checknum);
cout << "No " << itr1 << endl;
}
}
我在编译过程中遇到错误:编译消息
solution.cc: In function 'int main()':
solution.cc:28:18: error: cannot bind 'std::basic_ostream<char>' lvalue to 'std::basic_ostream<char>&&'
cout << "Yes " << itr1 << endl;
^
In file included from /usr/include/c++/4.9/iostream:39:0,
from solution.cc:4:
/usr/include/c++/4.9/ostream:602:5: note: initializing argument 1 of 'std::basic_ostream<_CharT, _Traits>& std::operator<<(std::basic_ostream<_CharT, _Traits>&&, const _Tp&) [with _CharT = char; _Traits = std::char_traits<char>; _Tp = __gnu_cxx::__normal_iterator<int*, std::vector<int> >]'
operator<<(basic_ostream<_CharT, _Traits>&& __os, const _Tp& __x)
^
solution.cc:33:18: error: cannot bind 'std::basic_ostream<char>' lvalue to 'std::basic_ostream<char>&&'
cout << "No " << itr1 << endl;
^
In file included from /usr/include/c++/4.9/iostream:39:0,
from solution.cc:4:
/usr/include/c++/4.9/ostream:602:5: note: initializing argument 1 of 'std::basic_ostream<_CharT, _Traits>& std::operator<<(std::basic_ostream<_CharT, _Traits>&&, const _Tp&) [with _CharT = char; _Traits = std::char_traits<char>; _Tp = __gnu_cxx::__normal_iterator<int*, std::vector<int> >]'
operator<<(basic_ostream<_CharT, _Traits>&& __os, const _Tp& __x)
【问题讨论】:
-
您可以将其缩小到 2 行代码。您发布的大部分内容都是无关紧要的。
-
那么问题是什么?除此之外,您可能还想在
cout语句中使用*itr1。