本文整理汇总了C++中Array::Drop方法的典型用法代码示例。如果您正苦于以下问题:C++ Array::Drop方法的具体用法?C++ Array::Drop怎么用?C++ Array::Drop使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类Array
的用法示例。
在下文中一共展示了Array::Drop方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: FinishTable
void RichQtfParser::FinishTable()
{
FinishCell();
while(table.Top().cell % Table().GetColumns())
FinishCell();
tablepart = pick(Table());
istable = true;
table.Drop();
}
示例2: FinishOldTable
void RichQtfParser::FinishOldTable()
{
FinishCell();
Index<int> pos;
Vector<int> srow;
RichTable& t = Table();
Tab& b = table.Top();
for(int i = 0; i < t.GetRows(); i++) {
int& s = srow.Add();
s = 0;
int nx = b.rown[i];
for(int j = 0; j < nx; j++)
s += t.GetSpan(i, j).cx;
int xn = 0;
for(int j = 0; j < nx; j++) {
pos.FindAdd(xn * 10000 / s);
xn += t.GetSpan(i, j).cx;
}
}
Vector<int> h = pos.PickKeys();
if(h.GetCount() == 0)
Error("table");
Sort(h);
pos = pick(h);
pos.Add(10000);
RichTable tab;
tab.SetFormat(t.GetFormat());
for(int i = 0; i < pos.GetCount() - 1; i++) {
tab.AddColumn(pos[i + 1] - pos[i]);
}
for(int i = 0; i < t.GetRows(); i++) {
int s = srow[i];
int nx = b.rown[i];
int xn = 0;
int xi = 0;
for(int j = 0; j < nx; j++) {
Size span = t.GetSpan(i, j);
xn += span.cx;
int nxi = pos.Find(xn * 10000 / s);
tab.SetPick(i, xi, t.GetPick(i, j));
tab.SetFormat(i, xi, t.GetFormat(i, j));
tab.SetSpan(i, xi, max(span.cy - 1, 0), nxi - xi - 1);
xi = nxi;
}
}
table.Drop();
if(table.GetCount())
table.Top().text.CatPick(pick(tab));
else
target.CatPick(pick(tab));
oldtab = false;
}
示例3: Parse
//.........这里部分代码省略.........
if(Key('~'))
format.tab.Clear();
else {
RichPara::Tab tab;
Key('<');
if(Key('>'))
tab.align = ALIGN_RIGHT;
if(Key('='))
tab.align = ALIGN_CENTER;
if(Key('.'))
tab.fillchar = 1;
if(Key('-'))
tab.fillchar = 2;
if(Key('_'))
tab.fillchar = 3;
int rightpos = Key('>') ? RichPara::TAB_RIGHTPOS : 0;
tab.pos = rightpos | ReadNumber();
format.tab.Add(tab);
}
}
break;
default:
continue;
}
}
}
SetFormat();
}
else
if(Key(']')) {
Flush();
if(fstack.GetCount()) {
format = fstack.Top();
fstack.Drop();
}
else
Error("Unmatched ']'");
}
else
if(Key2('{')) {
if(oldtab)
Error("{{ in ++ table");
if(text.GetLength() || paragraph.GetCount())
EndPart();
table.Add();
int r = IsDigit(*term) ? ReadNumber() : 1;
Table().AddColumn(r);
while(Key(':'))
Table().AddColumn(ReadNumber());
TableFormat();
SetFormat();
}
else
if(Key2('}')) {
if(oldtab)
Error("}} in ++ table");
FinishTable();
}
else
if(Key2('+'))
if(oldtab)
FinishOldTable();
else {
Flush();
if(text.GetLength() || paragraph.GetCount())
EndPart();
示例4: UnpackParts
//.........这里部分代码省略.........
case CAPITALSS:
format.capitals = chrstyle.capitals;
break;
case DASHED0:
format.dashed = false;
break;
case DASHED1:
format.dashed = true;
break;
case DASHEDS:
format.dashed = chrstyle.dashed;
break;
case SSCRIPT:
format.sscript = in.Get();
if(format.sscript == 3)
format.sscript = chrstyle.sscript;
break;
case FACE:
c = in.Get16();
format.Face(c == 0xffff ? chrstyle.GetFace() : c);
break;
case HEIGHT:
c = in.Get16();
format.Height(c == 0xffff ? chrstyle.GetHeight() : c);
break;
case LINK:
in % format.link;
break;
case INDEXENTRY:
in % format.indexentry;
break;
case INK:
in % format.ink;
break;
case PAPER:
in % format.paper;
break;
case LANGUAGE:
format.language = in.Get32();
break;
case EXT:
switch(in.Get()) {
case NONAA0:
format.NonAntiAliased(false);
break;
case NONAA1:
format.NonAntiAliased(true);
break;
case NONAAS:
format.NonAntiAliased(chrstyle.IsNonAntiAliased());
break;
}
}
while((c = in.Term()) < 31 && c != 9 && c != FIELD && c >= 0);
if(part.Top().text.GetLength())
part.Add();
part.Top().format = format;
}
else
if(in.Term() == FIELD) {
RichPara::Format pformat = format;
if(part.Top().text.GetLength()) {
part.Add();
part.Top().format = pformat;
}
in.Get();
Part& p = part.Top();
String id;
in % id;
p.field = id;
in % p.fieldparam;
String s;
in % s;
StringStream sn(s);
UnpackParts(sn, chrstyle, p.fieldpart, obj, oi);
part.Add();
part.Top().format = format = pformat;
}
else
if(in.Term() == OBJECT) {
if(part.Top().text.GetLength()) {
part.Add();
part.Top().format = format;
}
part.Top().object = obj[oi++];
part.Top().format = format;
part.Add();
part.Top().format = format;
in.Get();
}
else {
StringBuffer b;
b.Reserve(512);
while(in.Term() >= 32 || in.Term() == 9)
b.Cat(in.Get());
part.Top().text.Cat(FromUtf8(~b));
}
if(part.Top().text.GetLength() == 0 && part.Top().IsText())
part.Drop();
}
示例5: if
Array<FileSystemInfo::FileInfo> FileSystemInfo::Find(String mask, int max_count, bool unmounted) const
{
Array<FileInfo> fi;
if(IsNull(mask))
{ // root
#ifdef PLATFORM_WINCE
FileInfo& f = fi.Add();
f.filename = "\\";
f.root_style = ROOT_FIXED;
#elif defined(PLATFORM_WIN32)
char drive[4] = "?:\\";
for(int c = 'A'; c <= 'Z'; c++) {
*drive = c;
int n = GetDriveType(drive);
if(n == DRIVE_NO_ROOT_DIR)
continue;
FileInfo& f = fi.Add();
f.filename = drive;
char name[256], system[256];
DWORD d;
if(c != 'A' && c != 'B' && n != DRIVE_REMOTE && n != DRIVE_UNKNOWN) {
bool b = GetVolumeInformation(drive, name, 256, &d, &d, &d, system, 256);
if(b) {
if(*name) f.root_desc << " " << FromSystemCharset(name);
}
else if(n == DRIVE_REMOVABLE || n == DRIVE_CDROM) {
if(unmounted) {
f.root_desc = t_("Empty drive");
} else {
fi.Drop();
continue;
}
}
}
switch(n)
{
default:
case DRIVE_UNKNOWN: f.root_style = ROOT_UNKNOWN; break;
case DRIVE_NO_ROOT_DIR: f.root_style = ROOT_NO_ROOT_DIR; break;
case DRIVE_REMOVABLE: f.root_style = ROOT_REMOVABLE; break;
case DRIVE_FIXED: f.root_style = ROOT_FIXED; break;
case DRIVE_REMOTE: f.root_style = ROOT_REMOTE; break;
case DRIVE_CDROM: f.root_style = ROOT_CDROM; break;
case DRIVE_RAMDISK: f.root_style = ROOT_RAMDISK; break;
}
}
#elif defined(PLATFORM_POSIX)
FileInfo& f = fi.Add();
f.filename = "/";
f.root_style = ROOT_FIXED;
#endif
}
else
{
FindFile ff;
if(ff.Search(mask))
do
{
FileInfo& f = fi.Add();
f.filename = ff.GetName();
#ifndef PLATFORM_POSIX
f.is_archive = ff.IsArchive();
f.is_compressed = ff.IsCompressed();
f.is_hidden = ff.IsHidden();
f.is_system = ff.IsSystem();
f.is_temporary = ff.IsTemporary();
#endif
f.is_read_only = ff.IsReadOnly();
f.length = ff.GetLength();
#ifdef PLATFORM_POSIX
f.creation_time = ff.GetLastChangeTime();
f.unix_mode = ff.GetMode();
#endif
f.last_access_time = ff.GetLastAccessTime();
f.last_write_time = ff.GetLastWriteTime();
#ifdef PLATFORM_WIN32
f.creation_time = ff.GetCreationTime();
f.unix_mode = 0;
#endif
f.read_only = ff.IsReadOnly();
f.is_directory = ff.IsDirectory();
f.is_folder = ff.IsFolder();
f.is_file = ff.IsFile();
#ifdef PLATFORM_POSIX
f.is_symlink = ff.IsSymLink();
#endif
}
while(ff.Next() && fi.GetCount() < max_count);
}
return fi;
}