本文整理汇总了C++中Code::len方法的典型用法代码示例。如果您正苦于以下问题:C++ Code::len方法的具体用法?C++ Code::len怎么用?C++ Code::len使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Code
的用法示例。
在下文中一共展示了Code::len方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: _position
unsigned _position(Env& env) {
//if (not has_elements<Code>(env,2)) return 1;
Code first = pop<Code>(env);
Code second = pop<Code>(env);
if (first->get_stack().size() == 0) {
if (equal_to(first,second))
push(env, 0);
else
push(env,-1);
return 1;
}
const CodeArray& stack = first->get_stack();
for (int i = stack.size()-1;i >= 0; --i) {
if (equal_to(stack[i], second)) {
push<int>(env, stack.size()-i-1);
return stack.size() * second->len();
}
}
push<int>(env, -1);
return stack.size() * second->len();
}
示例2: _nth
unsigned _nth(Env& env) {
//if (not has_elements<Code>(env,1)) return 1;
//if (not has_elements<int>(env,1)) return 1;
Code first = pop<Code>(env);
int val = pop<int>(env);
if (first->get_stack().size() == 0) { // nil or atom
push(env, first);
return 1;
}
const CodeArray& stack = first->get_stack();
val = std::abs(val) % stack.size();
push(env, stack[stack.size()-val-1]);
return first->len();
}
示例3: _nthcdr
unsigned _nthcdr(Env& env) {
//if (not has_elements<Code>(env,1)) return 1;
//if (not has_elements<int>(env,1)) return 1;
Code first = pop<Code>(env);
int val = pop<int>(env);
if (first->get_stack().size() == 0) { // nil or atom
push(env, first);
return 1;
}
CodeArray stack = first->get_stack();
val = std::abs(val) % stack.size();
while(--val >= 0) stack.pop_back();
push(env, Code(new CodeList(stack)));
return first->len();
}