| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 573 人关注过本帖
标题:一个简单的vector问题
只看楼主 加入收藏
fl8962
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:14
帖 子:539
专家分:2471
注 册:2012-10-17
结帖率:96.23%
收藏
已结贴  问题点数:10 回复次数:6 
一个简单的vector问题
#include<iostream>
#include<vector>
#include<string>
using namespace std;
int main()
{
  int i,j;
  vector<string> a;
  vector<string>::iterator p;
  p=a.begin();
  string word[10];
  for(i=0;i<10;++i)
  {  cin>>word[i];
    a.push_back(word[i]);
  }
for(p=a.begin();p!=(p+7);++p)
   {
     cout<<*p<<" ";
   }
  return 0;
}
我就是想输入字符串到这个string vector 里面,然后输出,不知道为什么一直是segementation fault, 请问下大家我这样做有什么问题。谢谢。
搜索更多相关主题的帖子: include 
2014-01-30 10:32
zklhp
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:china
等 级:贵宾
威 望:254
帖 子:11485
专家分:33241
注 册:2007-7-10
收藏
得分:10 
我看你的意思好像是 输入10个字符串 取前七个?空格间隔输出?

我写了一个。。

程序代码:
#include<iostream>
#include<vector>
#include<string>

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

int main(void)
{
    size_t i = 0;
    const size_t num_read = 10;
    string read("");
    vector<string> str_vec;

    while (cin >> read)
    {
        ++i;
        str_vec.push_back(read);
        if (i == num_read)
            break;
    }
    const size_t num_print = 7;
    for (vector<string>::iterator p = str_vec.begin(); p != str_vec.end() && distance(str_vec.begin(), p) != num_print; ++p)
        cout << *p << " ";
    return 0;
}




[ 本帖最后由 zklhp 于 2014-1-30 19:24 编辑 ]
2014-01-30 19:19
郁闷的终结
Rank: 2
等 级:论坛游民
威 望:1
帖 子:8
专家分:33
注 册:2013-3-20
收藏
得分:0 
我们老师直接PASS了这一部分,我是一头雾水啊,谁能给我解释解释?
2014-02-01 12:31
fl8962
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:14
帖 子:539
专家分:2471
注 册:2012-10-17
收藏
得分:0 
回复 3楼 郁闷的终结
如何解释。。。又不是打几个字就能说明白,我也是,我老师还在给我们讲C语言的数组。

想抽苏烟了。
2014-02-01 12:43
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
程序代码:
#include <conio.h>
#include <string>
#include <iostream>
#include <vector>

int wmain(void)
{
    std::vector<std::wstring> list_string; 

    for (std::wstring str(L""); str != L"end"; std::wcin >> str)
    {
            list_string.push_back(str);
    } 

    for (std::vector<std::wstring>::const_iterator iterator = list_string.cbegin(); iterator != list_string.cend(); ++iterator)
    {
        std::wcout << *iterator << std::endl;
    }

    _getwch();
    return 0;
}

輸入end結束循環!


[ 本帖最后由 TonyDeng 于 2014-2-1 13:26 编辑 ]

授人以渔,不授人以鱼。
2014-02-01 13:22
TonyDeng
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:304
帖 子:25859
专家分:48889
注 册:2011-6-22
收藏
得分:0 
樓主的問題,是沒搞清楚string和vector的概念,不需要借用char[]數組的,顯然是學C的基礎妨礙了學C++,這是又一明證。我總不明白爲什麽總有人說學C++之前非要學C不可的,當然不是說不能學,但問題是這個人得要有足够的靈活性,把握得到什麽該放、什麽該守才成,否則那祇能是障礙。

順便說一下,上面這些東西,不過是用了C++的皮毛語法,完全不涉及C++面向對象的本質,其實仍然是C代碼,無非是使用了更豐富的語法和庫函數而已。不要再說祇有用cin/cout才是C++了,在C++中,用scanf/printf也未嘗不可。關鍵是精神,不是語法。

[ 本帖最后由 TonyDeng 于 2014-2-1 13:40 编辑 ]

授人以渔,不授人以鱼。
2014-02-01 13:35
fl8962
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:14
帖 子:539
专家分:2471
注 册:2012-10-17
收藏
得分:0 
回复 6楼 TonyDeng
谢谢版主的指点,上大学之前自己看了点c++,现在大一又教c语言。这两种我都是学了点皮毛,谢谢你的指正。

想抽苏烟了。
2014-02-01 15:09
快速回复:一个简单的vector问题
数据加载中...
 
   



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

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