Форум программистов, компьютерный форум CyberForum.ru

Непонятен пример из Лафоре - C++

Восстановить пароль Регистрация
Другие темы раздела
C++ В двумерном массиве нужно найти количество положительных и отрицательных чисел http://www.cyberforum.ru/cpp-beginners/thread756022.html
Ребята, помогите срочно решить задачу по С++... В двумерном массиве нужно найти количество положительных и отрицательных чисел!
C++ Обработка исключений Проблема. В main создаю объект класса MAS int или string. Нужно, что бы когда int - то заполнялся массив нулями, а когда string - выполнялся catch. template <class T> class MAS{ private: T arr; public: MAS(){ try { http://www.cyberforum.ru/cpp-beginners/thread756017.html
C++ Программа проверки числа на простоту. Не могу понять как она работает.
У меня в учебнике есть программа, она правильно работает, но я не могу понять каким образом она это делает. int i, j; bool isprime; for (i=1; i<100; i++) { isprime = true;
C++ Двумерные массивы. Найти новый одномерный массив, максимальный элемент, заменить третий элемент
Помогите пожалуйста написать хотя бы одну из этих программ: Дана матрица А(5,5) 1.Найти новый одномерный массив С из сумм элементов каждого столбца матрицы А. 2.Найти максимальный элемент, среди элементов главной диагонали матрицы А. 3.Заменить третий элемент в 1 строке матрицы А на максимальный элемент.
C++ Const после функции http://www.cyberforum.ru/cpp-beginners/thread755995.html
Здравствуйте! Объясните, пожалуйста, что делает тут const: double GetFrequency () const { return m_frequency; } (Этот кусок взят из класса и можно ли так писать вне класса?)
C++ Вывод графического объекта на С++ Нужно, переделать так, чтобы программа вместо символов (>,<) выводила графический объект (*.bmp). Помогите переделать. #include <conio.h> #include <iostream> using namespace std; int main(){ char key; for(;;){ cout << "Press any key" << endl; подробнее

Показать сообщение отдельно
Nagdiel
 Аватар для Nagdiel
114 / 114 / 3
Регистрация: 23.12.2012
Сообщений: 195
08.01.2013, 21:04     Непонятен пример из Лафоре
x = s1::find(' ') - выполняет поиск пробела в строке s1. Если пробел найден в x запишется его позиция в строке. Если же пробелов в строке нет, find вернет константу npos, которая является максимальным возможным значением для типа size_t.


Цитата Сообщение от danrunet Посмотреть сообщение
while(x < s1.size()) // Не понятен смысл этого выражения. Возможно так ( x != -1 ). Или я чтото упустил?
Вопрос, вероятно, связан с тем, что в стандартной библиотеке npos определяется следующим образом
C++
1
static const size_t npos = -1;
Здесь нет никакого противоречия, так как size_t беззнаковый тип, поэтому -1 в дополнительном коде будет интерпретироваться как максимальное положительное значение этого типа. Поэтому, если в строке не будет найден очередной пробел условие (x < s1.size()) будет ложным и цикл прекратится.

Конечно вариант (x != -1) тоже должен работать, но грамотней было бы написать (x != string::npos)
 
Текущее время: 07:59. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2016, vBulletin Solutions, Inc.
Рейтинг@Mail.ru