10 / 10 / 2
Регистрация: 01.02.2010
Сообщений: 317
|
|||||||||||
1 | |||||||||||
Вопрос про std::07.03.2010, 19:01. Показов 44139. Ответов 21
Метки нет (Все метки)
где про это можно почитать не нашел.. и почему оба варианта работают?
1
|
07.03.2010, 19:01 | |
Ответы с готовыми решениями:
21
про std Вопрос по std::list Теоретический вопрос по std::map Про позднюю инициализацию std::thread |
8384 / 3616 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
|
|||||||||||
07.03.2010, 19:07 | 2 | ||||||||||
Сообщение было отмечено как решение
Решение
Krist_ALL, скорее всего у вас или Borland Builder 6 или MS Visual C++ 6.0.
Раньше пространств имен не было, поэтому для того чтобы использовать потоки cin/cout необходимо было только подключить библиотеку iostream.h. Но потом сделали пространства имен и во всех современных средах они поддерживаются, поэтому для использования содержимого пространства необходимо его подключить или обращаться к ним по имени пространства. Поэтому первый вариант будет работать только в новых IDE, второй или в старых, или в новых, при условии. что будет использован один из этих кодов сразу после после подкючения библиотек
3
|
10 / 10 / 2
Регистрация: 01.02.2010
Сообщений: 317
|
|
07.03.2010, 19:13 [ТС] | 3 |
дайте плз ссыль где прочитать про std
и зачем оно нужно чтоб написано было)
1
|
8384 / 3616 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
|
|
07.03.2010, 19:15 | 4 |
Krist_ALL, http://en.wikipedia.org/wiki/C... rd_Library
1
|
17 / 19 / 4
Регистрация: 03.02.2010
Сообщений: 247
|
|
07.03.2010, 19:16 | 5 |
Почитать это можно практически в любой книге по С++.
Первый вариант кода будет работать в любом случае, так как std::cout это полный путь к стандартной функции библиотеки std. функция cout отвечает за вывод информации в консоль. Второй вариант кода- будет работать и его можно будет использовать если в начале программы вместе с заголовочным файлом #include<iostream>, написать еще и использование контекста using std::cout- после обьявления этой строчки функцию cout, компилятор будет распознавать как будто было введено std::cout. проще всего включить в заголовок полное пространство имен std. следующим образом: using namespace std;
1
|
8384 / 3616 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
|
||||||
07.03.2010, 19:22 | 6 | |||||
al072, вы не заставите BC3.1 воспринять строку
1
|
17 / 19 / 4
Регистрация: 03.02.2010
Сообщений: 247
|
|
07.03.2010, 19:57 | 7 |
Что такое ВСЗ?
без включения в заголовок пространства имен std, cout мы спокойно можем использовать с разрешением контекста! то есть std::cout.
1
|
8384 / 3616 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
|
|
07.03.2010, 20:08 | 8 |
1
|
17 / 19 / 4
Регистрация: 03.02.2010
Сообщений: 247
|
|
07.03.2010, 20:13 | 9 |
M128K145, я извиняюсь!!! просто мы говорим о разных средах.. я имею ввиду VC++(VS2008).
В таком случае дальнейшие обсуждения не имеют смысла..
1
|
8384 / 3616 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
|
|
07.03.2010, 20:16 | 10 |
1
|
1183 / 468 / 87
Регистрация: 23.06.2009
Сообщений: 6,390
|
|
08.03.2010, 13:27 | 11 |
раз темка открыта и свой вопрос задам.
вот на форуме вижу что обзывают ламерством вот это и гвоорят что надо так вопрос:почему? ведь легко вначале написать строк и никогда не писать лишнее,раз уж это только стиль программирования, то притензий никакой не должно быть.
1
|
158 / 20 / 3
Регистрация: 26.02.2010
Сообщений: 56
|
||||||
08.03.2010, 13:44 | 12 | |||||
На самом деле пиши как тебе удобно, просто используют std::cout что бы не засорять глобальную область имен используя директиву using;
Но на мой взгляд если у тебя идет например 10 строк cout то постоянно писать std::cout не очень то и удобно, я в таких случаях просто использую оператор using иногда даже локально:
1
|
158 / 20 / 3
Регистрация: 26.02.2010
Сообщений: 56
|
||||||
08.03.2010, 15:33 | 14 | |||||
когда ти используешь директиву using namespace std;
все имена кторые есть в этом пространстве(std) становятся видимыми, и если у тебя в программе встретиться такоеже имя которое определено в пространстве имен std то это вызовет конфликт имен; использовать локально, это я имелл в виду
1
|
8384 / 3616 / 419
Регистрация: 03.07.2009
Сообщений: 10,709
|
|
08.03.2010, 15:56 | 15 |
МедведЪ, смысл примерно тот же, что и в ООП:
Незачем наследоваться от класса, если нужен только один метод, проще создать объект этого класса и через него обращаться к методу. Иначе тянется куча всякого ненужного мусора, которая может только навредить
1
|
158 / 20 / 3
Регистрация: 26.02.2010
Сообщений: 56
|
|
08.03.2010, 20:42 | 17 |
Мусор это то что ты включаешь с помощью директивы using, но совсем не используешь в программе.
То есть помимо cout и cin в пространстве имён std, есть еще много чего не нужного в данном коде.
1
|
158 / 20 / 3
Регистрация: 26.02.2010
Сообщений: 56
|
|
08.03.2010, 20:59 | 19 |
Ну считается как правило хорошего тона использовать такой способ везде где это возможно;
Но всё равно, если даже тебе не удобно писать каждый раз std::cout допустим, то рпедпочтительнее использовать using std::cout; чем using namespace std;
1
|
0 / 0 / 0
Регистрация: 16.09.2015
Сообщений: 16
|
|
22.05.2017, 16:45 | 20 |
Терзает вопрос.
Слишком частое разрешением контекста, например, std::cout, будет ли снижать производительность, чем в случае единоразового использования using std::cout, ну или на худой конец using namespace std и далее по тексту только cout? Ведь налицо же обильные обращения к пространтсву имен не должно остаться незаметным для производительности.
0
|
22.05.2017, 16:45 | |
22.05.2017, 16:45 | |
Помогаю со студенческими работами здесь
20
Не воспринимает ни std::cout, ни std::cin. Вобщем ничего из std. Также не понимает iostream ошибка error: cannot convert 'std::string {aka std::basic_string<char>}' to 'std::string* {aka std::basic_stri STL std::set, std::pair, std::make_pair На основе исходного std::vector<std::string> содержащего числа, создать std::vector<int> с этими же числами Вопрос по std::map Немного про std::string Искать еще темы с ответами Или воспользуйтесь поиском по форуму: |