gpt4 book ai didi

C++,根据值输入从二维数组中选择

转载 作者:太空狗 更新时间:2023-10-29 21:46:56 26 4
gpt4 key购买 nike

我正在使用 softflowd+nfdump 创建 netflow 数据并将此数据存储在二维(字符串)数组中

flows = new string *[flows_len];
for (int i=0;i<flows_len;i++)
{
flows[i] = new string[47];
}

我正在用 C++ 编写。数组中的每一“行”代表一条流记录,47是nfdump显示的netflow数据不同字段的个数。

我想在每个 IP 基础上创建一些统计数据(例如,每个 IP 有多少连接流)但我无法弄清楚如何获得具有相同 IP 的那些行流(值srcip 存储在 flows[j][4] 中,我是 c++ 新手)。

提前致谢!

最佳答案

这是一个非常非常非常简单的例子

#include <vector>
#include <string>
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <algorithm>
#include <iterator>

using namespace std;

typedef vector< string > StatInfo; // 47 enries

void print_stat_by_ip( const vector< StatInfo > & infos, const string & ip ) {
for ( int i = 0, count = infos.size(); i < count; i++ ) {
const StatInfo & info = infos[ i ];
if ( info[ 4 ] == ip ) {
copy( info.begin(), info.end(), ostream_iterator< string >( cout, ", " ) );
cout << endl;
}
}
}

int main()
{
vector< StatInfo > infos;

for ( int i = 0; i < 10; i++ ) {
StatInfo info;
for ( int j = 0; j < 47; j++ ) { // just filling them "0", "1", "2", ... , "46"
char c_str[ 42 ];
sprintf( c_str, "%d", j );
info.push_back( c_str );
}
char c_str[ 42 ];
sprintf( c_str, "%d", rand() % 10 );
info[ 4 ] = c_str; // this will be an IP-address
infos.push_back( info );

copy( info.begin(), info.end(), ostream_iterator< string >( cout, ", " ) );
cout << endl;
}

string ip_to_find = "5";
cout << "----------------------------------------" << endl;
cout << "stat for " << ip_to_find << endl;
cout << "----------------------------------------" << endl;
print_stat_by_ip( infos, ip_to_find );
}

你可以在这里找到它 http://liveworkspace.org/code/3AAye8

关于C++,根据值输入从二维数组中选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14080323/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com