c++ - 计算 vector 中偶数长度的单词

标签 c++ console-application

我有两个问题。

1) cout << v_setir.capacity();不返回正确的数字。

2) 我想计算长度为偶数的单词。 我应该用 vector 来计算。

这是我的代码:

#include <iostream>
#include <vector>
#include <sstream>

using namespace std;

int main()
{
    int say = 0;

    cout << "Setiri daxil edin: ";
    string setir;
    getline(cin, setir);

    vector<string> v_setir;
    string ifadeler;
    istringstream yig(setir);

    while (yig >> ifadeler)
        v_setir.push_back(setir);

    // First problem
    cout << v_setir.capacity() << endl;

    // Second problem
/*  for (size_t i = 0; i < v_setir.capacity(); i++)
    {
        if (v_setir[i].size() % 2 == 0)
            say += 1;
    }
    cout << "Uzunlugu cut olan sozerin sayi: " << say << endl;*/

    return 0;
}

例如,如果我输入这个字符串行,它返回“6”(为什么我不知道):

hi hello how are you

怎么了?我的大脑停止了运转,我无法确定我的代码和/或算法中有什么问题。

请帮我解决这些问题。

最好的问候。

最佳答案

capacity() 是当前分配的空间,而不是 vector 中元素的数量。使用:size() 代替

参见:

您的循环现在应该可以正常工作,但您也可以查看示例 there它对可被 3 整除的整数执行类似的操作。

关于c++ - 计算 vector 中偶数长度的单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27794665/

相关文章:

c++ - 使用 WINAPI ReadConsole

C#简单的数学运算得到奇怪的结果

c# - 如何让控制台应用程序运行直到用户输入 "Q"、 "q"、 "Quit"或 "quit"以终止它?

C++ Makefile 错误 - 没有规则可生成目标 '%.cpp'

C++ 语法 : Object* foo(0);

c++ - 为什么只能在头文件中实现模板?

c# - 在一处查看多个 .Net 控制台应用程序的输出

c++ - 数组填充错误

c++ - CreateFont、DeleteObject 和 GDI 句柄/内存泄漏

java - Intellij idea Hashmaps打印到控制台