本文整理汇总了C++中duplicate函数的典型用法代码示例。如果您正苦于以下问题:C++ duplicate函数的具体用法?C++ duplicate怎么用?C++ duplicate使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。
在下文中一共展示了duplicate函数的15个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: dtrMatrix_as_dtpMatrix
SEXP dtrMatrix_as_dtpMatrix(SEXP from)
{
SEXP val = PROTECT(NEW_OBJECT(MAKE_CLASS("dtpMatrix"))),
uplo = GET_SLOT(from, Matrix_uploSym),
diag = GET_SLOT(from, Matrix_diagSym),
dimP = GET_SLOT(from, Matrix_DimSym);
int n = *INTEGER(dimP);
SET_SLOT(val, Matrix_DimSym, duplicate(dimP));
SET_SLOT(val, Matrix_diagSym, duplicate(diag));
SET_SLOT(val, Matrix_uploSym, duplicate(uplo));
full_to_packed_double(
REAL(ALLOC_SLOT(val, Matrix_xSym, REALSXP, (n*(n+1))/2)),
REAL(GET_SLOT(from, Matrix_xSym)), n,
*CHAR(STRING_ELT(uplo, 0)) == 'U' ? UPP : LOW,
*CHAR(STRING_ELT(diag, 0)) == 'U' ? UNT : NUN);
SET_SLOT(val, Matrix_DimNamesSym,
duplicate(GET_SLOT(from, Matrix_DimNamesSym)));
UNPROTECT(1);
return val;
}
示例2: string_dup
String* String::string_dup(STATE) {
String* ns;
ns = as<String>(duplicate(state));
ns->shared(state, Qtrue);
shared(state, Qtrue);
// Fix for subclassing
ns->klass(state, class_object(state));
return ns;
}
示例3: main
int main (void) {
/* program to coordinate the menu options and calls the requested function */
struct node * first = NULL; /* pointer to the first list item */
char option[strMax]; /* user response to menu selection */
printf ("Program to Maintain a List of Names\n");
while (1) {
/* print menu options */
printf ("Options available\n");
printf ("I - Insert a name (from the keyboard) into the list\n");
printf ("P - Print the names on the list\n");
printf ("F - Read a sequence of names from a file onto the list\n");
printf ("R - Remove duplicate names (leaving only the first occurence)\n");
printf ("D - Duplicate each node\n");
printf ("Q - Quit\n");
/* determine user selection */
printf ("Enter desired option: ");
scanf ("%s", option);
switch (option[0])
{ case 'I':
case 'i':
addName(&first);
break;
case 'P':
case 'p':
print(first);
break;
case 'F':
case 'f':
addNamesFromFile(&first);
break;
case 'R':
case 'r':
removeDuplicates(first);
break;
case 'D':
case 'd':
duplicate(first);
break;
case 'Q':
case 'q':
printf ("Program terminated\n");
return 0;
break;
default: printf ("Invalid Option - Try Again!\n");
continue;
}
}
}
示例4: _new
// support for C++ new and delete
void * MemMgrItf :: _new ( size_t bytes )
{
FUNC_ENTRY ();
// allocate new object plus header size
Refcount * obj = ( Refcount * ) _alloc ( bytes, true );
obj -> mmgr = ( MemMgrItf * ) duplicate ();
obj -> obj_size = bytes;
// return allocation
return ( void * ) obj;
}
示例5: do_args
SEXP attribute_hidden do_args(SEXP call, SEXP op, SEXP args, SEXP rho)
{
SEXP s;
checkArity(op,args);
if (TYPEOF(CAR(args)) == STRSXP && length(CAR(args))==1) {
PROTECT(s = installTrChar(STRING_ELT(CAR(args), 0)));
SETCAR(args, findFun(s, rho));
UNPROTECT(1);
}
if (TYPEOF(CAR(args)) == CLOSXP) {
s = allocSExp(CLOSXP);
SET_FORMALS(s, FORMALS(CAR(args)));
SET_BODY(s, R_NilValue);
SET_CLOENV(s, R_GlobalEnv);
return s;
}
if (TYPEOF(CAR(args)) == BUILTINSXP || TYPEOF(CAR(args)) == SPECIALSXP) {
char *nm = PRIMNAME(CAR(args));
SEXP env, s2;
PROTECT_INDEX xp;
PROTECT_WITH_INDEX(env = findVarInFrame3(R_BaseEnv,
install(".ArgsEnv"), TRUE),
&xp);
if (TYPEOF(env) == PROMSXP) REPROTECT(env = eval(env, R_BaseEnv), xp);
PROTECT(s2 = findVarInFrame3(env, install(nm), TRUE));
if(s2 != R_UnboundValue) {
s = duplicate(s2);
SET_CLOENV(s, R_GlobalEnv);
UNPROTECT(2);
return s;
}
UNPROTECT(1); /* s2 */
REPROTECT(env = findVarInFrame3(R_BaseEnv, install(".GenericArgsEnv"),
TRUE), xp);
if (TYPEOF(env) == PROMSXP) REPROTECT(env = eval(env, R_BaseEnv), xp);
PROTECT(s2 = findVarInFrame3(env, install(nm), TRUE));
if(s2 != R_UnboundValue) {
s = allocSExp(CLOSXP);
SET_FORMALS(s, FORMALS(s2));
SET_BODY(s, R_NilValue);
SET_CLOENV(s, R_GlobalEnv);
UNPROTECT(2);
return s;
}
UNPROTECT(2);
}
return R_NilValue;
}
示例6: tlocs2rlocs
SEXP tlocs2rlocs(SEXP tlocs, SEXP exonStarts, SEXP exonEnds,
SEXP strand, SEXP decreasing_rank_on_minus_strand)
{
SEXP ans, starts, ends, ans_elt;
int decreasing_rank_on_minus_strand0, ans_length,
i, transcript_width, on_minus_strand, nlocs, j, tloc;
decreasing_rank_on_minus_strand0 =
LOGICAL(decreasing_rank_on_minus_strand)[0];
ans_length = LENGTH(tlocs);
PROTECT(ans = duplicate(tlocs));
for (i = 0; i < ans_length; i++) {
starts = VECTOR_ELT(exonStarts, i);
ends = VECTOR_ELT(exonEnds, i);
transcript_width = get_transcript_width(starts, ends, -1);
if (transcript_width == -1) {
UNPROTECT(1);
error("%s", errmsg_buf);
}
on_minus_strand = strand_is_minus(strand, i);
if (on_minus_strand == -1) {
UNPROTECT(1);
error("%s", errmsg_buf);
}
ans_elt = VECTOR_ELT(ans, i);
if (ans_elt == R_NilValue) {
nlocs = 0;
} else if (IS_INTEGER(ans_elt)) {
nlocs = LENGTH(ans_elt);
} else {
UNPROTECT(1);
error("'tlocs' has invalid elements");
}
for (j = 0; j < nlocs; j++) {
tloc = INTEGER(ans_elt)[j];
if (tloc == NA_INTEGER)
continue;
if (tloc < 1 || tloc > transcript_width) {
UNPROTECT(1);
error("'tlocs[[%d]]' contains \"out of limits\" "
"transcript locations (length of "
"transcript is %d)", j + 1, transcript_width);
}
INTEGER(ans_elt)[j] = tloc2rloc(tloc,
starts, ends,
on_minus_strand,
decreasing_rank_on_minus_strand0);
}
}
UNPROTECT(1);
return ans;
}
示例7: do_logic3
/* all, any */
SEXP attribute_hidden do_logic3(SEXP call, SEXP op, SEXP args, SEXP env)
{
SEXP ans, s, t, call2;
int narm, has_na = 0;
/* initialize for behavior on empty vector
all(logical(0)) -> TRUE
any(logical(0)) -> FALSE
*/
Rboolean val = PRIMVAL(op) == _OP_ALL ? TRUE : FALSE;
PROTECT(args = fixup_NaRm(args));
PROTECT(call2 = duplicate(call));
SETCDR(call2, args);
if (DispatchGroup("Summary", call2, op, args, env, &ans)) {
UNPROTECT(2);
return(ans);
}
ans = matchArgExact(R_NaRmSymbol, &args);
narm = asLogical(ans);
for (s = args; s != R_NilValue; s = CDR(s)) {
t = CAR(s);
/* Avoid memory waste from coercing empty inputs, and also
avoid warnings with empty lists coming from sapply */
if(xlength(t) == 0) continue;
/* coerceVector protects its argument so this actually works
just fine */
if (TYPEOF(t) != LGLSXP) {
/* Coercion of integers seems reasonably safe, but for
other types it is more often than not an error.
One exception is perhaps the result of lapply, but
then sapply was often what was intended. */
if(TYPEOF(t) != INTSXP)
warningcall(call,
_("coercing argument of type '%s' to logical"),
type2char(TYPEOF(t)));
t = coerceVector(t, LGLSXP);
}
val = checkValues(PRIMVAL(op), narm, LOGICAL(t), XLENGTH(t));
if (val != NA_LOGICAL) {
if ((PRIMVAL(op) == _OP_ANY && val)
|| (PRIMVAL(op) == _OP_ALL && !val)) {
has_na = 0;
break;
}
} else has_na = 1;
}
UNPROTECT(2);
return has_na ? ScalarLogical(NA_LOGICAL) : ScalarLogical(val);
}
示例8: read_wifi
void read_wifi(struct params *p)
{
char buf[4096];
int rc;
struct ieee80211_frame *wh;
rc = sniff(p->rx, buf, sizeof(buf));
if (rc == -1)
err(1, "sniff()");
wh = get_wifi(buf, &rc);
if (!wh)
return;
/* filter my own shit */
if (memcmp(wh->i_addr2, p->mac, 6) == 0) {
/* XXX CTL frames */
if ((wh->i_fc[0] & IEEE80211_FC0_TYPE_MASK) !=
IEEE80211_FC0_TYPE_CTL)
return;
}
#if 1
ack(p, wh);
#endif
if (duplicate(p, wh, rc)) {
#if 0
printf("Dup\n");
#endif
return;
}
switch (wh->i_fc[0] & IEEE80211_FC0_TYPE_MASK) {
case IEEE80211_FC0_TYPE_MGT:
read_mgt(p, wh, rc);
break;
case IEEE80211_FC0_TYPE_CTL:
read_ctl(p, wh, rc);
break;
case IEEE80211_FC0_TYPE_DATA:
read_data(p, wh, rc);
break;
default:
printf("wtf\n");
abort();
break;
}
}
示例9: duplicate
void duplicate(node* head, node*& newHead)
{
if(!head)
{
newHead = NULL;
return;
}
newHead = new node;
newHead->data = head->data;
newHead->previous = head->previous;
duplicate(head->next, newHead->next);
}
示例10: dtrMatrix_addDiag
SEXP dtrMatrix_addDiag(SEXP x, SEXP d) {
int n = INTEGER(GET_SLOT(x, Matrix_DimSym))[0];
SEXP ret = PROTECT(duplicate(x)),
r_x = GET_SLOT(ret, Matrix_xSym);
double *dv = REAL(d), *rv = REAL(r_x);
if ('U' == diag_P(x)[0])
error(_("cannot add diag() as long as 'diag = \"U\"'"));
for (int i = 0; i < n; i++) rv[i * (n + 1)] += dv[i];
UNPROTECT(1);
return ret;
}
示例11: insert
/*------------------------------------嵌入------------------------------------*/
void insert(int s[])
{
int i;
srand(time(NULL));
for(i=1;i<7;i++)
{
do
{
s[i]=1+rand()%49;
}
while(duplicate(s,i));
}
}
示例12: main
int main () {
cout<<"\n=====================================\n";
cout<<"\nProgram to Demonstrate Friend Functions\n";
cout<<"\n=====================================\n";
clrscr();
Rectangle recta, rectb;
recta.set_values (2,3);
rectb = duplicate (recta);
cout <<"\nArea of old Rectangle "<< recta.area();
cout <<"\nArea of duplicated Rectangle "<< rectb.area();
getch();
return 0;
}
示例13: duplicate
exprt ranking_synthesis_qbf_bitwiset::instantiate_conjunctive(void)
{
std::pair<exprt,exprt> dlt = duplicate(affine_template(ID_and, ID_or),
bitwise_width);
if(bitwise_width<=1)
{
dlt.second.negate();
return binary_relation_exprt(dlt.second, ID_and, dlt.first);
}
else
return binary_relation_exprt(dlt.second, ID_lt, dlt.first);
}
示例14: do_classgets
/* oldClass<-(), primitive */
SEXP attribute_hidden do_classgets(SEXP call, SEXP op, SEXP args, SEXP env)
{
checkArity(op, args);
check1arg(args, call, "x");
if (NAMED(CAR(args)) == 2) SETCAR(args, duplicate(CAR(args)));
if (length(CADR(args)) == 0) SETCADR(args, R_NilValue);
if(IS_S4_OBJECT(CAR(args)))
UNSET_S4_OBJECT(CAR(args));
setAttrib(CAR(args), R_ClassSymbol, CADR(args));
SET_NAMED(CAR(args), 0);
return CAR(args);
}
示例15: logit_link
SEXP logit_link(SEXP mu)
{
int i, n = LENGTH(mu);
SEXP ans = PROTECT(duplicate(mu));
double *rans = REAL(ans), *rmu=REAL(mu);
if (!n || !isReal(mu))
error(_("Argument %s must be a nonempty numeric vector"), "mu");
for (i = 0; i < n; i++)
rans[i] = log(x_d_omx(rmu[i]));
UNPROTECT(1);
return ans;
}