2014-11-09 1 views
-4
#include <iostream> 
#include <vector> 
using namespace std; 

int main() 
{ 
    vector<string> SS; 

    SS.push_back("The number is 10"); 
    cout << SS.size(); 

    return 0; 
} 

Когда я запускаю это, выход равен 1. Почему это не длина строки?Почему это не говорит мне, как долго вектор строк?

+0

Поскольку ваша строка в векторе, например, 'SS [0]' - поэтому 'SS [0] .size' будет длиной строки. –

ответ

0

Это говорит вам, как долго вектор строк. Длина вектора означает количество элементов в tt, в данном случае 1.

Чтобы получить длину первого элемента в векторе, напишите cout << SS[0].size();.

+0

Черт, на 9 секунд медленнее ... –

+0

@arc_lupus вам нужно использовать метод «foot in the door» ... немедленно выполните одно слово, а затем отредактируйте его в течение льготного периода –

0

Вы печатаете размер вектора через доступ к SS.size(). Если вы хотите получить размер строки, используйте SS[0].size(). Затем вы получаете доступ к первому элементу, например. ваша первая оттолкнутая строка.
Если вы хотите получить длину последнего вставленного элемента, используйте SS[SS.size()-1].size().

0
SS.size() 

даст вам количество элементов, вставленных в вектор.

Чтобы получить длину конкретной строки, вы можете использовать: -

SS[i].length(); 
0

метод размер() дает размер вектора, например, количество строк в ней (с ним один, потому что вы только толкать 1 строка) попробуйте SS.front(). Length(), чтобы получить длину строки

0

Потому что SS.size() возвращает количество элементов в вашем векторном SS. Это 1, потому что вы поместили в него одну строку.

Если вы хотите узнать длину строки в своем векторе. Вы можете сделать следующее.

длина INT = StrLen (SS [0])

SS [0] возвращает строку в позиции 0, которые вы ввели. Strlen вернет длину этой строки.

Edit: использовать StrLen вам нужно #include < string.h>

+1

Зачем использовать 'strlen', когда вы можете использовать 'size()', который является членом класса строк? –

Смежные вопросы