本文整理汇总了C++中qstringlist::iterator::section方法的典型用法代码示例。如果您正苦于以下问题:C++ iterator::section方法的具体用法?C++ iterator::section怎么用?C++ iterator::section使用的例子?那么, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类qstringlist::iterator
的用法示例。
在下文中一共展示了iterator::section方法的1个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C++代码示例。
示例1: getAttributeInfo
void synaxErrorJudger::getAttributeInfo(vector<string> &attributeNameList,
vector<pair<int, size_t>> &dataTypeInfo, set<string> &uniqueAttribute)
{
int begin = sqlExp.indexOf('(') + 1;
int end = sqlExp.lastIndexOf(',') - 1;
QStringList attrList = sqlExp.mid(begin, end - begin + 1).split(',');
QStringList::iterator it;
for (it = attrList.begin(); it != attrList.end(); ++it) {
if (it->trimmed() == "") {
throw QString("Synax Error: Create statement's format is incorrect.");
}
string attributeName = it->section(' ', 0, 0, QString::SectionSkipEmpty).trimmed().toStdString();
attributeNameList.push_back(attributeName);
if (it->indexOf("unique") != -1) {
uniqueAttribute.insert(attributeName);
it->remove(it->indexOf("unique"), sizeof("unique") - 1);
}
it->remove(it->indexOf(attributeName.c_str()), attributeName.size());
*it = it->trimmed();
if (*it == "int") {
dataTypeInfo.push_back(pair<int, size_t>(_INT, sizeof(int)));
}
else if (*it == "char") {
dataTypeInfo.push_back(pair<int, size_t>(_CHAR, sizeof(char)));
}
else if (*it == "float") {
dataTypeInfo.push_back(pair<int, size_t>(_FLOAT, sizeof(float)));
}
else { //一定是char(n,因为通过了前面正则表达式的匹配
it->remove("char").remove('(').remove(')'); //去除括号
int length = it->trimmed().toInt();
if (length < 1 || length > 255) {
throw QString("Synax Error: The length of string is overflow.");
}
dataTypeInfo.push_back(pair<int, size_t>(_STRING, sizeof(char) * length));
}
}
}