В Студии для Додиеза и Васика сделаны так называемые сниппеты. Это в редакторе программист пишет начало конструкции, а система расширяет конструкцию до полной. И есть механизм, встроенный в студию, чтобы набор сниппетов расширять. То, что в Турбо-системах было сделано посредством temc - макросный механизм.
А для С++ такого нет. Или сложно делать.
И вот я одному второгодку задал сделать. Он покопался, нашел в инете прогу, посредством которой эти сниппеты можно для С++ к студии прикрутить.
Набор сниппетов:
Код:
#include<iostream>
#include<ctime>
#include<string>
#include<cstring>
#include <cwchar>
#include<stdexcept>
#include<fstream>
#include<sstream>
#include<cmath>
#include<iomanip>
#include <algorithm>
#include<vector>
#include <deque >
#include <functional>
#include <iterator>
#include <list >
#include <map>
#include <memory >
#include <numeric >
#include <queue>
#include <set>
#include <stack>
#include <utility>
using namespace std;
Каждая строчка - отденьный сниппет
А тут - наиболее часто набираемые нашими студиозами вещи
Код:
int main()
{
system("pause");
return 0;
}
Код:
setlocale (LC_ALL, "rus");
Код:
srand((unsigned)time(NULL));
А тут - каждый оператор - отдельный сниппет
Код:
if ($value$)
{
}
if ($value$)
{
}
else
{
}
switch ($name$)
{
case 1:
break;
}
switch ($name$)
{
case 1:
break;
default:
break;
}
while ($value$)
{
}
do
{
} while ($value$)
Еще классы:
Код:
class $name$
{
}
struct $name$
{
}
class $name$
{
private: // поля
public: // функции
$name$(){} // конструктор по умолчанию
$name$( ) // конструктор инициализации
{
}
$name$(const $name$ &b) // конструктор копирования
{
}
~$name$(){} // деструктор
}
class $name$
{
private: // поля
public: // функции
$name$( ) // конструктор инициализации
{
}
}
Ввод-вывод:
Код:
ifstream in("input.txt");
if(in)
{
}
in.close();
ofstream out("output.txt");
if(out)
{
}
out.close();
ifstream in("input.bin", ios::binary);
if(in)
{
}
in.close();
ofstream out("output.bin", ios::binary);
if(out)
{
}
out.close();
$out$.write( $char$, strlen ($char$) );
$in$.read(%$char$, 1);
ofstream out("output.bin", ios::binary|ios::app);
if(out)
{
}
out.close();
void copyfile(ifstream &in, ofstream &out)
{ out<< in.rdbuf(); }
Еще из стандартной библиотеки ряд снипетов:
Код:
vector<$type$> $name$;
vector<$type$>::iterator $name$;
$name$.push_back();
$name$.pop_back();
$name$.begin();
$name$.end();
list<$type$> $name$;
list <$type$>::iterator $name$;
$name$.front();
$name$.back();
accumulate( $name$.begin(), $name$.end(), 0);
for_each($name$.begin(), $name$.end(), $function$)
copy($namein$.begin(), $namein$.end(), $nameout$.begin())
copy_backward($namein$.begin(), $namein$.end(), $nameout$.begin())
fill( $name$.begin(), $name$.end(), $value$);
generate( $name$.begin(), $name$.end(), $function$)
swap ( $name1$, $name2$ )
sort( $name$.begin(), $name$.end());
adjacend_find( $name$.begin(), $name$.end());
mismatch($name1$.begin(), $name1$.end(), $name2$.begin())
random_shuffle( $name$.begin(), $name$.end());
binary_search( $name$.begin(), $name$.end(), $value$);
lexicographical_compare($name1$.begin(), $name1$.end(), $name2$.begin())
min_element ( $name$.begin(), $name$.end());
max_element ( $name$.begin(), $name$.end());
next_permutation ( $name$.begin(), $name$.end());
prev_permutation ( $name$.begin(), $name$.end());
set_intersection ($name1$.begin(), $name1$.end(), $name2$.begin(), $name2$.end(), $nameout$.begin())
set_difference($name1$.begin(), $name1$.end(), $name2$.begin(), $name2$.end(), $nameout$.begin())
set_symmetric_difference($name1$.begin(), $name1$.end(), $name2$.begin(), $name2$.end(), $nameout$.begin())
set_union($name1$.begin(), $name1$.end(), $name2$.begin(), $name2$.end(), $nameout$.begin())