Code: #include <iostream> #include <string> #include <sstream> using namespace std; string my_func(int x){ stringstream strNumber; strNumber << x; return strNumber.str(); } int main(){ cout << my_func(5); } И старайтесь не юзать char* там, где ему не место =)
2 ra$cal сделай цикл из 4000000 вызовов твоей фукнции и функции void function(int i, char * result) { itoa(i,result,10); } ... и ты все поймешь! только поставь отсчет времени на начало и конец цикла! хотя присмотритесь к функции которая выполняет одну единственную функцию по сути нужно вызывать вместо этой функции функцию itoa, поскольку мы не добавляем ни функциональности а только ограничиваем в выборе базы! 2 HTL Как в C++Builder 6 объявить функцию? В Delphi это делается так: function Name(i: Integer): string; begin Result :=IntToStr(i); end; а в Си это делается itoa(i,Result,10);
очередное горе, желающее, чтобы программа выполнялась за 0.00001с а не за 0.00005с. Мне лень вразумлять о преждевременной оптимизации, о том, что пишется код не для компьютера, а для программиста, и о прочих деталях пром кодинга, а не коленочного под пиво. Читайте книжки, или кодьте на асме. С++ сделали не для переписывания на нем си программ. Когда поймете, почему делают новые языки, такие как C++, Java, C#, тогда велкам.
Подскажите учебник на подобии "Библия delphi (Михаил Фленов)" но для C++ (кто читал/просматривал учебник "Библия delphi" тот подскажет я так думаю)
Позволю себе не согласиться. KI11obyte, неужели первая, книга которую ты прочитал, была Библия? Думаю, нет. Здесь то же самое. Лучше начать с Либерти. А потом уже закреплять Страуструпом. Фленова не читал, так что не знаю, на что похожа его книга, но в качестве первой Страуструп, по-моему, не очень подходит. Такое мясо из языков ( Разберитесь уж на чем пишите
вы хоть раз писали софт, по размеру от 5-7 тыщ строк? если нет, то я вам подскажу одну вещь - юзеру будет совсем не наплевать на то, как писал программист, зато ему будет наплевать на скорость выполнения функции(поверьте, им и щас наплевать, тратится на функцию 0.0001с или 0.1с). Когда он пришлет вам багрепорт с критической багой, которую нада устранить в кратчайшие сроки, которая может потребовать небольшого перепроектирования какойнить подсистемы - вот тогда вы будете ковыряца в куче char*'чек, матерясь, следя, по какой цепочке вызовов проходят указатели для экономии(о да) 500 байт памяти. Все это уже давно пройдено, и именно это повлияло на создание таких языков, как C++, Java итп. Советую почитать Фаулера, Макконнелла, Гамму с компанией. Про скорость выполнения - готов в свободное время на спор написать программку - я и вы. Вы пишите с оптимизацией на скорость, я пишу как обычно. Программы будут идентичны. Даем юзерам и потом спрашиваем - какая написана оптимизированно под скорость, а какая моя. И я могу предсказать ответ пользователей =) И моя будет написана быстрее, а при необходимости добавить новую фичу - добавлена она будет так же быстрее. А для бизнеса это означает, что мой софт займет долю рынка раньше и получит больше клиентов -> больше денег. PS: сейчас время программиста стоит гораздо дороже времени машины, поэтому и балансируют скоростью разработки и скоростью выполнения. Если совсем все плохо - делают точечную оптимизацию. Кароч спорить бестолку. Читайте книги. Я уже устал от таких рассказов. За вчера меня трое пыталось убедить, что классы - зло. Сезонное чтоли=\ PPS: char* - для языка С, в C++ юзать нада класс string. Это стоит учитывать, когда человек просит помочь с конкретным языком.
экккк .... вас спорьте с фразой не отвлекаясь на частности ЗАМЕНЯТЬ itoa РЕАЛИЗАЦИЕЙ НА КЛАССАХ -ГЛУПО если вы не увеличиваете функциональность или скорость ! CString str; // мы тащимся от классов 8) .... itoa(xx,buf,yy); // тут колбасит ОСОБЫХ людей с голубой кровью КОТОРЫЕ УДАЛИЛИ ИЗ СВОИХ MSDN к MSVC ... ................ //все описания команд типа itoa!! str=CString(buf); // тут опять тащимся 8-Ь P.S. Если вы отбросите указатели в С++ то чего вы вообще делаете на форуме посвященном безопасности? Каким образом вы будете работать с областями памяти заданные адресами, каким образом будете писать эксплоиты? Коммерческое программирование конечно хорошо.... но при чем тут античат? Почитайте Рихтера "Проффессиональное программирование в Windows" и поразитесь насколько редко используется С++ в его высокоуровневой компоненте, не сбивайте школьников обьясняя им что С++ , только высокоуровневый , если сами не понимаете всей полноты языка лучше помолчите!
1 - itoa требует работы в стиле си, т.к. класс string не дает доступа к своему буферу на запись. поэтому itoa в c++ весьма неразумно. для этого дела специально созданы потоки. 2 - если это не узкое место программы - значит проблем нет. прекратите думать за компилятор, предсказывать узкие места по производительности. занимайтесь лучше программированием предметной области. если же это есть место проблемы - тогда да. берем и оптимизируем, убираем потенциальные выделения памяти, лишние операции. все заменяем на простейшие операции. но только после подтверждения факта проблемы. а вы боритесь с проблемой, которую сами придумываете. удачи. далее спорить влом. кароч, если пишешь на си - пиши. тока не лезь в с++, а то выглядишь очень глупо.
Приветствую всех, нуждаюсь в помаши. Значит учусь по учембнику Джона либерти. Компилятор новый от майкрософт. Среда програмирования С++ В чем суть. есть исходный тексь программы. Вылезает ошибка: Также ещё один исходник: Вроде все верно, но при компиляции выдаеться таже ошибка. =( Просьба подсказать, что за заголов отсутствует, и куда надо его вписывать. За все ответы огромное спосибо.
#include "stdafx.h" #include <iostream> using namespace std; int main() { cout << "tra-lya-lya!" << endl; cout << "tra-lya-lya!" << endl; return 0; }
Я впринципе все делал правильно, у меня лиш вылезала ошибка И модератор подсказал using namespace std; =) (чего в книге нету нигде) Поэтому ; и : тут не причем =)
до правки в твоем коде было так Code: #include <iostream> int main() ;{ cout << "Hello World!\n" ; return 0; ;} В данном случае неуместные ; очень даже причем. И компилятор ругается на них. -
Это я знаю. Понатыкал ; перед { u }, т.к компилятор указывал на ошибки, я в поисках правильного решения проверял все варианты, сюда отписался тоже одним из своих вариантов... =) . Потом исправил мои ошибки, отредактировал =) Порой в книгах, которые работают с djvureader очень тяжко разгледеть стоит внизу запятая или точка. С этим я думаю ты согласишся =) Как не приближай.