当前位置: 首页>>代码示例>>C++>>正文


C++ TStack::size方法代码示例

本文整理汇总了C++中TStack::size方法的典型用法代码示例。如果您正苦于以下问题:C++ TStack::size方法的具体用法?C++ TStack::size怎么用?C++ TStack::size使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在TStack的用法示例。


在下文中一共展示了TStack::size方法的7个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。

示例1: Expand

void CStackTraceImpl::Expand(CStackTrace::TStack& stack)
{
    char** syms = backtrace_symbols(&m_Stack[0], m_Stack.size());
    for (size_t i = 0;  i < m_Stack.size();  ++i) {
        string sym = syms[i];

        CStackTrace::SStackFrameInfo info;
        info.func = sym.empty() ? "???" : sym;
        info.file = "???";
        info.offs = 0;
        info.line = 0;

        string::size_type pos = sym.find_first_of("(");
        if (pos != string::npos) {
            info.module = sym.substr(0, pos);
            sym.erase(0, pos + 1);
        }

        pos = sym.find_first_of(")");
        if (pos != string::npos) {
            sym.erase(pos);
            pos = sym.find_last_of("+");
            if (pos != string::npos) {
                string sub = sym.substr(pos + 1, sym.length() - pos);
                info.func = sym.substr(0, pos);
                info.offs = NStr::StringToInt(sub, 0, 16);
            }
        }

        //
        // name demangling
        //
        if ( !info.func.empty()  &&  info.func[0] == '_') {
#if NCBI_COMPILER_VERSION >= 310
            // use abi::__cxa_demangle
            size_t len = 0;
            char* buf = 0;
            int status = 0;
            buf = abi::__cxa_demangle(info.func.c_str(),
                                      buf, &len, &status);
            if ( !status ) {
                info.func = buf;
                free(buf);
            }
#endif
        }

        stack.push_back(info);
    }

    free(syms);
}
开发者ID:swuecho,项目名称:igblast,代码行数:52,代码来源:ncbi_stack_linux.cpp

示例2: mul

 //умножение
 void mul()
 {
     if(Data.size()>1)
     {
         double x = Data.pop();
         double y = Data.pop();
         Data.push(x*y);
         it++;
     }
     else error("cann't execute mul, stack is empty");
 }
开发者ID:ivanprosh,项目名称:Lingvo,代码行数:12,代码来源:main.cpp

示例3: sub

 //разность
 void sub()
 {
     if(Data.size()>1)
     {
         double y = Data.pop();
         double x = Data.pop();
         Data.push(x-y);
         it++;
     }
     else error("cann't execute add, stack is empty");
 }
开发者ID:ivanprosh,项目名称:Lingvo,代码行数:12,代码来源:main.cpp

示例4: div

 //деление
 void div()
 {
     if(Data.size()>1)
     {
         double y = Data.pop();
         double x = Data.pop();
         if(y) Data.push(x/y);
         else error("devide by zero");
         it++;
     }
     else error("cann't execute add, stack is empty");
 }
开发者ID:ivanprosh,项目名称:Lingvo,代码行数:13,代码来源:main.cpp

示例5: Count

unsigned int CErrorStack::Count()
{
    TStack *cStack = m_cErrors.get();
    return cStack->size() - 1;
}
开发者ID:kfazi,项目名称:Engine,代码行数:5,代码来源:errorstack.cpp

示例6: Clear

void CErrorStack::Clear()
{
    TStack *cStack = m_cErrors.get();
    while (cStack->size() > 1)
        cStack->pop();
}
开发者ID:kfazi,项目名称:Engine,代码行数:6,代码来源:errorstack.cpp

示例7: Pop

void CErrorStack::Pop()
{
    TStack *cStack = m_cErrors.get();
    if (cStack->size() > 1)
        cStack->pop();
}
开发者ID:kfazi,项目名称:Engine,代码行数:6,代码来源:errorstack.cpp


注:本文中的TStack::size方法示例由纯净天空整理自Github/MSDocs等开源代码及文档管理平台,相关代码片段筛选自各路编程大神贡献的开源项目,源码版权归原作者所有,传播和使用请参考对应项目的License;未经允许,请勿转载。