Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/cplusplus/145.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 找出堆栈数组中的下一个整数是否相同_C++_Arrays_Stack - Fatal编程技术网

C++ 找出堆栈数组中的下一个整数是否相同

C++ 找出堆栈数组中的下一个整数是否相同,c++,arrays,stack,C++,Arrays,Stack,因此,我试图实现这个方法,以了解一个整数在堆栈数组中是否连续出现两次。这个整数作为一个参数,我想知道它是否连续发生两次。不幸的是,我的方法总是返回false,你知道为什么吗 template<class T> bool stack<T>::isConsecutive( const T & data ) const{ bool flag=false; for (size_t i = 0; i < _top; i++) { if

因此,我试图实现这个方法,以了解一个整数在堆栈数组中是否连续出现两次。这个整数作为一个参数,我想知道它是否连续发生两次。不幸的是,我的方法总是返回false,你知道为什么吗

template<class T>
bool stack<T>::isConsecutive( const T & data ) const{
    bool flag=false;

    for (size_t i = 0; i < _top; i++) {
        if(data==elements[i] && elements[i]==elements[i+1]){
            flag=true;
        }
        else {
            flag=false;
        }
    }
    return flag;
}
模板
布尔堆栈::isconsecuritive(常量和数据)常量{
布尔标志=假;
对于(大小i=0;i<\u top;i++){
if(数据==元素[i]&&elements[i]==元素[i+1]){
flag=true;
}
否则{
flag=false;
}
}
返回标志;
}
试试这个

template<class T>
bool stack<T>::isConsecutive( const T & data ) const{
bool flag=false;

for (size_t i = 0; i < _top-1; i++) {
    if(data==elements[i] && elements[i]==elements[i+1]){
        return true;
    }
  }
 return flag;
 }
模板
布尔堆栈::isconsecuritive(常量和数据)常量{
布尔标志=假;
对于(大小i=0;i<\u top-1;i++){
if(数据==元素[i]&&elements[i]==元素[i+1]){
返回true;
}
}
返回标志;
}
我想这会有用的。

试试这个

template<class T>
bool stack<T>::isConsecutive( const T & data ) const{
bool flag=false;

for (size_t i = 0; i < _top-1; i++) {
    if(data==elements[i] && elements[i]==elements[i+1]){
        return true;
    }
  }
 return flag;
 }
模板
布尔堆栈::isconsecuritive(常量和数据)常量{
布尔标志=假;
对于(大小i=0;i<\u top-1;i++){
if(数据==元素[i]&&elements[i]==元素[i+1]){
返回true;
}
}
返回标志;
}

我想这会起作用。

当您找到连续数字的实例时,您的标志将重置为false,因为您不会中断/返回,而且
i<\u top
可能应该是
i<\u top-1
,此时假设
\u top
是堆栈的大小,ub被调用。我添加了return语句,它成功了!谢谢你,当你找到一个连续数字的实例时,你的标志将被重置为false,因为你不会中断/返回,而且
i<\u top
应该是
i<\u top-1
,此时假设
\u top
是堆栈的大小,ub被调用。我添加了return语句,它成功了!谢谢你你可以摆脱
标志
它总是
你可以摆脱
标志
它总是