C_and_CPP 板


LINE

C++ 其实提供非常多高阶函式把单调的回圈操作包装起来 以这个例子来说,切割字串可以用 istringstream 没错 但还可以搭配 istream_iterator 把资料流 (stream) 转成 iterator 有了 iterator 就可以搭配所有 STL 泛型函式使用 比如说把字串切割後存进 vector: istringstream input("1 22 333 44 5"); istream_iterator<int> begin(input); istream_iterator<int> end; vector<int> data; data.insert(data.begin(), begin, end); 又,C++ 提供 std::accumulate,让你可以把 iterator 寻访过的每个元素加起来 这样就完全不需要另一个 vector 来存这些数字: istringstream input("1 22 333 44 5"); istream_iterator<int> begin(input); istream_iterator<int> end; cout << accumulate(begin, end, 0) << endl; // 405 只要把资料用 iterator 表示,就可以利用 STL 内大量的泛型函式 而且执行速度非常快。 ※ 引述《pziyout (pziyout)》之铭言: : : python可以把一串字串(或输入一大段字串用空白或逗号相间),转换後运算 : : 例如 " 10 20 30 123 " 变成-->" '10','20','30','123' "之类的,对数字进行运算 : : (利用 .split() + .append() 之类的~) : : 但想请问C 或C++该如何进行? : 使用 istringstream 与 vector : #include <iostream> : #include <sstream> : #include <vector> : using namespace std ; : int main() { : int i , n , s ; : string foo = " 23 11 34 98 " ; : istringstream istr(foo) ; : vector<int> nums ; : while ( istr >> n ) nums.push_back(n) ; : cout << ( s = nums[0] ) ; : for ( i = 1 ; i < nums.size() ; ++i ) { : s += nums[i] ; : cout << " + " << nums[i] ; : } : cout << " = " << s << endl ; : return 0 ; : } --



※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 153.156.42.69
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1497971604.A.D82.html
1F:→ a855341: 感谢L大解释方法 我晚点才有电脑来试试看 06/21 11:26
2F:→ a855341: 但有些东西开始看不懂了QAQ 新手上路 但还是非常感谢 06/21 11:26
3F:推 s25g5d4: 这作法太逆天 上次在 stackoverflow 看到整个人都高潮了 06/23 03:45
4F:→ Killercat: 这其实算很标准做法 没啥好逆天的,谁叫std::string 06/24 16:12
5F:→ Killercat: 连.split()这种东西都不提供 XD 06/24 16:12
6F:→ Killercat: 你去查how to split a string c++大概都会找到这方法 06/24 16:13
7F:推 steve1012: Standard library 应该要有split才对 最好Python 的全 07/01 16:07
8F:→ steve1012: 都抄来xD 07/01 16:07
9F:→ steve1012: 觉得很多部分标准实在进展太慢 07/01 16:08







like.gif 您可能会有兴趣的文章
icon.png[问题/行为] 猫晚上进房间会不会有憋尿问题
icon.pngRe: [闲聊] 选了错误的女孩成为魔法少女 XDDDDDDDDDD
icon.png[正妹] 瑞典 一张
icon.png[心得] EMS高领长版毛衣.墨小楼MC1002
icon.png[分享] 丹龙隔热纸GE55+33+22
icon.png[问题] 清洗洗衣机
icon.png[寻物] 窗台下的空间
icon.png[闲聊] 双极の女神1 木魔爵
icon.png[售车] 新竹 1997 march 1297cc 白色 四门
icon.png[讨论] 能从照片感受到摄影者心情吗
icon.png[狂贺] 贺贺贺贺 贺!岛村卯月!总选举NO.1
icon.png[难过] 羡慕白皮肤的女生
icon.png阅读文章
icon.png[黑特]
icon.png[问题] SBK S1安装於安全帽位置
icon.png[分享] 旧woo100绝版开箱!!
icon.pngRe: [无言] 关於小包卫生纸
icon.png[开箱] E5-2683V3 RX480Strix 快睿C1 简单测试
icon.png[心得] 苍の海贼龙 地狱 执行者16PT
icon.png[售车] 1999年Virage iO 1.8EXi
icon.png[心得] 挑战33 LV10 狮子座pt solo
icon.png[闲聊] 手把手教你不被桶之新手主购教学
icon.png[分享] Civic Type R 量产版官方照无预警流出
icon.png[售车] Golf 4 2.0 银色 自排
icon.png[出售] Graco提篮汽座(有底座)2000元诚可议
icon.png[问题] 请问补牙材质掉了还能再补吗?(台中半年内
icon.png[问题] 44th 单曲 生写竟然都给重复的啊啊!
icon.png[心得] 华南红卡/icash 核卡
icon.png[问题] 拔牙矫正这样正常吗
icon.png[赠送] 老莫高业 初业 102年版
icon.png[情报] 三大行动支付 本季掀战火
icon.png[宝宝] 博客来Amos水蜡笔5/1特价五折
icon.pngRe: [心得] 新鲜人一些面试分享
icon.png[心得] 苍の海贼龙 地狱 麒麟25PT
icon.pngRe: [闲聊] (君の名は。雷慎入) 君名二创漫画翻译
icon.pngRe: [闲聊] OGN中场影片:失踪人口局 (英文字幕)
icon.png[问题] 台湾大哥大4G讯号差
icon.png[出售] [全国]全新千寻侘草LED灯, 水草

请输入看板名称,例如:WOW站内搜寻

TOP