Задача 3 Merge Trains  - Софтуерен университет

Задача 3 Merge Trains - Софтуерен университет

+ Нов въпрос
zlobjul avatar zlobjul 4 Точки

Задача 3 Merge Trains

Здравейте ,

Направих следната функция за да merge-на влаковете и да изкарам резултата .

void mergeTrains(std::vector<int> A,std::vector<int> B ){
std::priority_queue<int> Result;
std::stack<char> TrainChar;

for ( int i : A) Result.push(i);
for ( int i : B) Result.push(i);

while (!Result.empty()){
    if (std::find(A.begin(), A.end(), Result.top())) TrainChar.push('A');
    else TrainChar.push('B');
    std::cout << Result.top() << " " ;
    Result.pop();
}

}

 

На този ред обаче ми изкарва грешка - if (std::find(A.begin(), A.end(), Result.top())) TrainChar.push('A');

 

 Merge Trains.cpp|29|error: could not convert 'std::find<__gnu_cxx::__normal_iterator<int*, std::vector<int> >, int>(A.std::vector<_Tp, _Alloc>::begin<int, std::allocator<int> >(), A.std::vector<_Tp, _Alloc>::end<int, std::allocator<int> >(), (* & Result.std::priority_queue<_Tp, _Sequence, _Compare>::top<int, std::vector<int>, std::less<int> >()))' from '__gnu_cxx::__normal_iterator<int*, std::vector<int> >' to 'bool'|

 

не мога да разбера защо ?  синтаксиса е правилен.

Благодаря предварително !

Тагове:
0
C++ Fundamentals 10/12/2017 16:41:41
zlobjul avatar zlobjul 4 Точки

Открих си грешката , синтаксисът не е верен :)

Трябва да е ето така :

 

    if ( std::find (A.begin(), A.end(), Result.top()) != A.end() ) TrainChar.push('A');

 

0
11/12/2017 10:29:41