如何访问string数组的某个元素

qq_36515320 2016-10-26 08:55:34
// Listdemo.cpp :
/* InitialList(*L)
GetElem(L,i,*e)
LocateElem(L,e)
ListInsert(*L,i,e)
*/
#include "stdafx.h"
#include<iostream>;
#include<string>;
using namespace std;

string LocateElem(char e, string B, int n)
{
string store;
for (int i = 0; i <= n; i++)
{
char b = B[i];
if (e == b)
store[i]=i + 1;
else store[i]=0;//LocateElem(B,e)
}
return store;
}
int main()
{
/*string test;
char e = 'a';
string B = "Ha";
int n = 1;
test = LocateElem(e, B, n);
cout << test;*///testprog;
string A, B;
int numA,numB;
A = "Hello";
B = "World";//InitialList(A,B)
numA = A.size();
numB = B.size();
string *store= new string[numA-1];
for (int i = 0; i <= (numA - 1); i++)
{
char e = A[i];//GetElem(A,i,*e)
*(store+i) = LocateElem(e, B, numB - 1);
}

delete[] store;

return 0;
}
我想求AB并集;
求大神指教;
能把代码补全最好;
感激;
...全文
472 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
赵4老师 2016-10-26
  • 打赏
  • 举报
回复
仅供参考:
#include <algorithm>
#include <iostream>
#include <functional>
#include <cstring>
using namespace std;
int main() {
    char *Alphabet = "abcdefghijklmnopqrstuvwxyz" ;
    char *Vowels   = "aeiou" ;
    char *AlphaNum = "0123456789abcdef" ;
    char result[45] ;
    char *last ;

    int lenA  = strlen(Alphabet) ;
    int lenV  = strlen(Vowels  ) ;
    int lenAN = strlen(AlphaNum) ;

    cout << "Alphabet = " << Alphabet << endl ;
    cout << "Vowels   = " << Vowels   << endl ;
    cout << "AlphaNum = " << AlphaNum << endl ;

    cout << "\nusing non-predicate versions" << endl ;

    //non-predicate set_difference
    last = set_difference(Alphabet, Alphabet+lenA,
                          AlphaNum, AlphaNum+lenAN,
                          result) ;
    *last = 0 ;
    cout << "set_difference(Alphabet, AlphaNum) =  " << result << endl ;

    //non-predicate set_intersection
    last = set_intersection(Alphabet, Alphabet+lenA,
                            AlphaNum, AlphaNum+lenAN,
                            result) ;
    *last = 0 ;
    cout << "set_intersection(Alphabet, AlphaNum) =  " << result << endl ;

    //non-predicate set_symmetric_difference
    last = set_symmetric_difference(Alphabet, Alphabet+lenA,
                                    Vowels  , Vowels  +lenV,
                                    result) ;
    *last = 0 ;
    cout << "set_symmetric_difference(Alphabet, Vowels) =  " << result << endl ;

    //non-predicate set_union
    last = set_union(Alphabet, Alphabet+lenA,
                     AlphaNum, AlphaNum+lenAN,
                     result) ;
    *last = 0 ;
    cout << "set_union(Alphabet, AlphaNum) =  " << result << endl ;

    cout << "\nusing predicate versions" << endl ;

    //predicate set_difference
    last = set_difference(Alphabet, Alphabet+lenA,
                          AlphaNum, AlphaNum+lenAN,
                          result  , less<char>()) ;
    *last = 0 ;
    cout << "set_difference(Alphabet, AlphaNum) =  " << result << endl ;

    //predicate set_intersection
    last = set_intersection(Alphabet, Alphabet+lenA,
                            AlphaNum, AlphaNum+lenAN,
                            result  , less<char>()) ;
    *last = 0 ;
    cout << "set_intersection(Alphabet, AlphaNum) =  " << result << endl ;

    //predicate set_symmetric_difference
    last = set_symmetric_difference(Alphabet, Alphabet+lenA,
                                    Vowels  , Vowels  +lenV,
                                    result  , less<char>()) ;
    *last = 0 ;
    cout << "set_symmetric_difference(Alphabet, Vowels) =  " << result << endl ;

    //predicate set_union
    last = set_union(Alphabet, Alphabet+lenA,
                     AlphaNum, AlphaNum+lenAN,
                     result  , less<char>()) ;
    *last = 0 ;
    cout << "set_union(Alphabet, AlphaNum) =  " << result << endl ;

    return 0 ;
}
ztenv 版主 2016-10-26
  • 打赏
  • 举报
回复
引用 3 楼 qq_36515320 的回复:
[quote=引用 1 楼 lianshaohua 的回复:] 使用stl的求并集的算法
有没有适合新手的方法[/quote] 试试std::set_union
starytx 2016-10-26
  • 打赏
  • 举报
回复
就用STL的set容器吧
  • 打赏
  • 举报
回复
引用 5 楼 qq_36515320 的回复:
[quote=引用 4 楼 zjq9931 的回复:] [quote=引用 3 楼 qq_36515320 的回复:] [quote=引用 1 楼 lianshaohua 的回复:] 使用stl的求并集的算法
有没有适合新手的方法[/quote] 并集就是A+B啊。 string A; string B; string C; A = "Hello "; B = "wrold"; C = A + B;[/quote] 这样相同元素不会重复吗……[/quote] 其实set更合适。 set就是集合啊。 如果字符是元素就用 set<char> 如果字符串是元素就用 set<string>
  • 打赏
  • 举报
回复
引用 5 楼 qq_36515320 的回复:
[quote=引用 4 楼 zjq9931 的回复:] [quote=引用 3 楼 qq_36515320 的回复:] [quote=引用 1 楼 lianshaohua 的回复:] 使用stl的求并集的算法
有没有适合新手的方法[/quote] 并集就是A+B啊。 string A; string B; string C; A = "Hello "; B = "wrold"; C = A + B;[/quote] 这样相同元素不会重复吗……[/quote] 每一个字符当成一个元素? 如果是这样,那么确实会重复。 这个时候,你可以使用map。 map<char> 每个单词当成一个元素? map<string>
qq_36515320 2016-10-26
  • 打赏
  • 举报
回复
引用 4 楼 zjq9931 的回复:
[quote=引用 3 楼 qq_36515320 的回复:] [quote=引用 1 楼 lianshaohua 的回复:] 使用stl的求并集的算法
有没有适合新手的方法[/quote] 并集就是A+B啊。 string A; string B; string C; A = "Hello "; B = "wrold"; C = A + B;[/quote] 这样相同元素不会重复吗……
  • 打赏
  • 举报
回复
引用 3 楼 qq_36515320 的回复:
[quote=引用 1 楼 lianshaohua 的回复:] 使用stl的求并集的算法
有没有适合新手的方法[/quote] 并集就是A+B啊。 string A; string B; string C; A = "Hello "; B = "wrold"; C = A + B;
qq_36515320 2016-10-26
  • 打赏
  • 举报
回复
引用 1 楼 lianshaohua 的回复:
使用stl的求并集的算法
有没有适合新手的方法
qq_36515320 2016-10-26
  • 打赏
  • 举报
回复
有没有什么适合新手的方法
ztenv 版主 2016-10-26
  • 打赏
  • 举报
回复
使用stl的求并集的算法

64,666

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

试试用AI创作助手写篇文章吧