Exemplo n.º 1
0
// return a delimited list of the unique elements
const QuickString &KeyListOpsMethods::getDistinct() {
	if (empty()) return _nullVal;
	// separated list of unique values. If something repeats, only report once.
	makeFreqMap();
	_retStr.clear();
	for (; _freqIter != _freqMap.end(); _freqIter++) {
		if (_freqIter != _freqMap.begin()) _retStr += _delimStr;
		_retStr.append(_freqIter->first);
	}
	return _retStr;
}
Exemplo n.º 2
0
const string &KeyListOpsMethods::getDistinctOnly() {
	if (empty()) return _nullVal;
	// separated list of unique values. If something repeats, don't report.
	makeFreqMap();
	_retStr.clear();
	for (; _freqIter != _freqMap.end(); _freqIter++) {
		if (_freqIter->second > 1) continue;
		if (_freqIter != _freqMap.begin()) _retStr += _delimStr;
		_retStr.append(_freqIter->first);
	}
	return _retStr;
}
Exemplo n.º 3
0
const QuickString &KeyListOpsMethods::getDistinctOnly() {
	if (empty()) return _nullVal;

	//separated list of only unique values. If item repeats, discard.
	makeFreqMap();
	_retStr.clear();
	for (; _freqIter != _freqMap.end(); _freqIter++) {
		if (_freqIter->second != 1) continue;
		if (_freqIter != _freqMap.begin()) _retStr += _delimStr;
		_retStr.append(_freqIter->first);
	}
	return _retStr;
}
Exemplo n.º 4
0
// return the least common value in the vector
const QuickString &KeyListOpsMethods::getAntiMode() {
	if (empty()) return _nullVal;

	makeFreqMap();

	//now pass through the freq map and keep track of which key has the highest occurance.
	freqMapType::iterator minIter = _freqMap.begin();
	int minVal = INT_MAX;
	for (; _freqIter != _freqMap.end(); _freqIter++) {
		if (_freqIter->second < minVal) {
			minIter = _freqIter;
			minVal = _freqIter->second;
		}
	}
	_retStr =  minIter->first;
	return _retStr;
}
Exemplo n.º 5
0
// return a histogram of values and their freqs. in desc. order of frequency
const QuickString &KeyListOpsMethods::getFreqDesc() {
	if (empty()) return _nullVal;

	//for each uniq val, report # occurances, in desc order.
	makeFreqMap();
	//put freq map into multimap where key is the freq and val is the item. In other words, basically a reverse freq map.
	histDescType hist;
	for (; _freqIter != _freqMap.end(); _freqIter++) {
		hist.insert(pair<int, QuickString>(_freqIter->second, _freqIter->first));
	}
	//now iterate through the reverse map we just made and output it's pairs in val:key format.
	_retStr.clear();
	for (histDescType::iterator histIter = hist.begin(); histIter != hist.end(); histIter++) {
		if (histIter != hist.begin()) _retStr += _delimStr;
		_retStr.append(histIter->second);
		_retStr += ":";
		_retStr.append(histIter->first);
	}
	return _retStr;
}
Exemplo n.º 6
0
// return a the count of _unique_ elements in the vector
uint32_t KeyListOpsMethods::getCountDistinct() {
	if (empty()) return 0;

	makeFreqMap();
	return _freqMap.size();
}