| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 625 人关注过本帖
标题:【编写程序定义一个 vector 对象,其每个元素都是指向 string 类型的指针, ...
只看楼主 加入收藏
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
结帖率:100%
收藏
 问题点数:0 回复次数:3 
【编写程序定义一个 vector 对象,其每个元素都是指向 string 类型的指针,读取该 vector 对象,输出每个string 的内容及其相应的长度。】
程序代码:
#include <iostream>
#include <vector>
#include <string>

using std::cout;
using std::cin;
using std::endl;
using std::vector;
using std::string;

int main(void)
{
    string str[] = {"1", "22", "333"};
    vector<string *> pstr_vec;
    for (size_t i = 0; i != len; ++i)
    {
        pstr_vec.push_back(str + i);
    }
    for (vector<string *>::iterator p = pstr_vec.begin(); p != pstr_vec.end(); ++p)
    {
        cout << **p << endl;
        cout << (**p).size() << endl;
    }
    return 0;
}


不知道这里初始化是否可以写的简单一些 还有就是这个写的怎么样啊 看书基本上闭门造车 希望能得到大神的指点

顺便说一点感慨 这些迭代器神马的 不就是lisp里面的mapc一类的么 例如emacs lisp

(mapc (lambda (x) (message "%d" x)) '(1 2 3))

遍历 对每个元素执行一个匿名函数 这里是输出 返回原来的list 我一直感觉差不多的东西 只不过用C++写就高大上了


[ 本帖最后由 zklhp 于 2014-1-31 02:01 编辑 ]
搜索更多相关主题的帖子: 元素 color 编写程序 
2014-01-31 01:55
ml232528
Rank: 8Rank: 8
等 级:蝙蝠侠
威 望:5
帖 子:367
专家分:879
注 册:2007-7-23
收藏
得分:0 
如果不用指针的话可以用insert
vector<string> pstr_vec;
pstr_vec.insert(pstr_vec.begin(),str,str + sizeof(str)/sizeof(str[0]));

-︻┻┳═一 ☆ 悲伤的代价就是让自己明白什么是最重要的和应该珍惜的
2014-03-14 16:02
rjsp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:528
帖 子:9025
专家分:54030
注 册:2011-1-18
收藏
得分:0 
不会lisp,但C++可以这么搞
程序代码:
#include <iostream>
#include <algorithm>
using namespace std;

int main()
{
    for( int e : {1,2,3} )
        cout << e << '\n';

    int s[] = { 1, 2, 3 };
    for_each( std::begin(s), std::end(s), [](int e){cout<<e<<'\n';} );

    return 0;
}

2014-03-14 16:16
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:0 
以下是引用rjsp在2014-3-14 16:16:47的发言:

不会lisp,但C++可以这么搞
#include  
#include  
using namespace std;
 
int main()
{
    for( int e : {1,2,3} )
        cout << e << '\n';
 
    int s[] = { 1, 2, 3 };
    for_each( std::begin(s), std::end(s), [](int e){cout<
我一定努力学习向您看齐
2014-03-14 18:06
快速回复:【编写程序定义一个 vector 对象,其每个元素都是指向 string 类型的指 ...
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.057361 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved