Archive for December 2007

Полнотекстовый поиск в mediawiki

После установки mediawiki через несколько дней понимаешь, что встроенный поиск далек от идеального. Поэтому почти сразу же после установки я начал искать как прикрутить к wiki полнотекстовый поиск. Почти сразу же я нашел lucene и пошаговую инструкцию как это прикрутить к mediawiki .

Потратив уйму времени мне так и не удалось это сделать. Продолжая поиски я нашел замечательный движок Sphinx и инструкцию как его установить и подружить с mediawiki Пошагово выполняя пункты инструкции все заработало, что не может не радовать

Пересечение 2 множеств в STL

Иногда бывает необходимо найти пересечение 2 множеств в С++ используя STL. Оказалось что это достаточно просто, в алгоритмах для этого есть специальная функция, которая зовется set_intersection . Также в алгоритмах есть функция для вычеслиния дополнения множеств set_difference. Ниже приведен минимальный пример.

 
#include <set>
#include <iostream>
#include <algorithm>
 
using namespace std;
typedef std::set<int> testsettype;
 
void print(testsettype& output_set)
{
	testsettype::iterator it = output_set.begin();
	for(;it!=output_set.end();++it)
	{
		std::cout<<(*it)<<" ";
	}
	std::cout<<std::endl;
}
int main()
{
	testsettype set1;
	testsettype set2;
 
	for(int i=0,j=2;i<10;++i,++j)
	{
		set1.insert(i);
		set2.insert(j);
	}
 
	print(set1);
	print(set2);
	testsettype res_set;
 
	std::set_intersection( set1.begin(),set1.end(),set2.begin(),set2.end(),inserter(res_set, res_set.end()));
	std::cout<<"Set's intersection:\n";
	print(res_set);
	res_set.clear();
	std::set_difference( set2.begin(),set2.end(),set1.begin(),set1.end(),inserter(res_set, res_set.end()));
	std::cout<<"Set's difference:\n";
	print(res_set);
 
	return 0;
}
 

и результат


0 1 2 3 4 5 6 7 8 9
2 3 4 5 6 7 8 9 10 11
Set's intersection:
2 3 4 5 6 7 8 9
Set's difference:
10 11

Hello world!

Не будем отступать от хороших традиций ;).

Хочу здесь писать про всякие интересные штуки :). Например про mediawiki, про программирование и про многое другое